Video generation method and device
Technical Field
The present disclosure relates to the field of multimedia technologies, and in particular, to a video generation method and apparatus.
Background
Live video may include live television programs, live webcast video, and the like. After the live video broadcast is finished, the operator of the video website usually uploads, transcodes, checks and releases the complete live video to convert the live video into the on-demand video. If the time of live broadcasting the video is long, the user needs to wait for a long time after the live broadcasting is finished to see the on-demand video corresponding to the live broadcasting video in the video website. For example, uploading, transcoding, reviewing, and publishing 90 minutes of live video may take approximately 1 hour. Therefore, for the live video of 90 minutes, if the live video is finished at 00:00, the user can see the relevant on-demand video only at about 01:00, and the time delay is large.
Disclosure of Invention
In view of this, the present disclosure provides a video generation method and apparatus, so as to solve the problem in the related art that the video distribution delay is large due to the slow speed of generating an on-demand video from a live video.
According to an aspect of the present disclosure, there is provided a video generation method including:
in the live video live broadcasting process, acquiring a current live video clip of a live video and an identifier of the current live video clip;
generating a latest on-demand segment identification set corresponding to the live video according to the identification of the current live video segment and the identification of the video segment finished by live broadcasting;
under the condition that the current live video clip is the last video clip of the live video, taking the latest on-demand clip identification set as an on-demand video identification set corresponding to the live video;
and splicing all the video segments corresponding to the on-demand video identification set to generate a first on-demand video.
In one possible implementation, the method further includes:
generating verification information corresponding to the on-demand video identification set;
associating the verification information with the first on-demand video.
In a possible implementation manner, the video definitions of the video segments corresponding to the latest on-demand segment identifier set are all first definitions, and the first on-demand video is an on-demand video with a first definition corresponding to the live video.
In one possible implementation, after generating the first on-demand video, the method further includes:
and under the condition that the on-demand videos with other definitions corresponding to the live video exist, associating the first on-demand video with the on-demand videos with other definitions to obtain an on-demand video set corresponding to the live video.
In a possible implementation manner, after obtaining an on-demand video set corresponding to the live video, the method further includes:
acquiring an uploading voucher corresponding to the on-demand video set;
and generating a target video corresponding to the on-demand video set according to the uploading certificate.
According to another aspect of the present disclosure, there is provided a video generating apparatus including:
the system comprises a first acquisition module, a second acquisition module and a first display module, wherein the first acquisition module is used for acquiring a current live video clip of a live video and an identifier of the current live video clip in the live video live broadcasting process;
the first generation module is used for generating a latest on-demand segment identification set corresponding to the live video according to the identification of the current live video segment and the identification of the video segment finished by live broadcasting;
the determining module is used for taking the latest on-demand segment identification set as an on-demand video identification set corresponding to the live video under the condition that the current live video segment is the last video segment of the live video;
and the second generation module is used for splicing all the video segments corresponding to the on-demand video identification set to generate a first on-demand video.
In one possible implementation, the apparatus further includes:
the third generation module is used for generating the verification information corresponding to the on-demand video identification set;
a first associating module to associate the verification information with the first on-demand video.
In a possible implementation manner, the video definitions of the video segments corresponding to the latest on-demand segment identifier set are all first definitions, and the first on-demand video is an on-demand video with a first definition corresponding to the live video.
In one possible implementation, the apparatus further includes:
and the second association module is used for associating the first on-demand video with on-demand videos with other definitions under the condition that on-demand videos with other definitions corresponding to the live video exist, so as to obtain an on-demand video set corresponding to the live video.
In one possible implementation, the apparatus further includes:
the second acquisition module is used for acquiring an uploading voucher corresponding to the on-demand video set;
and the fourth generation module is used for generating the target video corresponding to the on-demand video set according to the uploading certificate.
According to another aspect of the present disclosure, there is provided a video generating apparatus including:
a processor;
a memory for storing processor-executable instructions;
wherein the processor is configured to:
in the live video live broadcasting process, acquiring a current live video clip of a live video and an identifier of the current live video clip;
generating a latest on-demand segment identification set corresponding to the live video according to the identification of the current live video segment and the identification of the video segment finished by live broadcasting;
under the condition that the current live video clip is the last video clip of the live video, taking the latest on-demand clip identification set as an on-demand video identification set corresponding to the live video;
and splicing all the video segments corresponding to the on-demand video identification set to generate a first on-demand video.
According to another aspect of the present disclosure, there is provided a non-transitory computer-readable storage medium having instructions therein, which when executed by a processor of a terminal and/or a server, enable the terminal and/or the server to perform a video generation method, the method including:
in the live video live broadcasting process, acquiring a current live video clip of a live video and an identifier of the current live video clip;
generating a latest on-demand segment identification set corresponding to the live video according to the identification of the current live video segment and the identification of the video segment finished by live broadcasting;
under the condition that the current live video clip is the last video clip of the live video, taking the latest on-demand clip identification set as an on-demand video identification set corresponding to the live video;
and splicing all the video segments corresponding to the on-demand video identification set to generate a first on-demand video.
The method comprises the steps of acquiring a current live video clip of a live video and an identifier of the current live video clip in the live video live broadcasting process, generating a latest on-demand clip identifier set corresponding to the live video according to the identifier of the current live video clip and the identifier of a video clip finished in live broadcasting, taking the latest on-demand clip identifier set as an on-demand video identifier set corresponding to the live video under the condition that the current live video clip is the last video clip of the live video, splicing the video clips corresponding to the on-demand video identifier sets to generate a first on-demand video, rapidly releasing the on-demand video corresponding to the live video according to the video generation and device in each aspect of the disclosure, greatly reducing the time delay of releasing the on-demand video corresponding to the live video, and splicing the video clips of the live video to obtain the first on-demand video, the persistent storage of the on-demand video corresponding to the live video can be realized.
Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments, which proceeds with reference to the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments, features, and aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.
Fig. 1 shows a flow diagram of a video generation method according to an embodiment of the present disclosure.
Fig. 2 illustrates an exemplary flow diagram of a video generation method according to an embodiment of the present disclosure.
Fig. 3 illustrates another exemplary flow diagram of a video generation method according to an embodiment of the present disclosure.
Fig. 4 shows a block diagram of a video generation apparatus according to an embodiment of the present disclosure.
Fig. 5 is an exemplary block diagram of a video generation apparatus according to an embodiment of the present disclosure.
Fig. 6 is a block diagram illustrating an apparatus 800 for video generation according to an example embodiment.
Fig. 7 is a block diagram illustrating an apparatus 1900 for video generation according to an example embodiment.
Detailed Description
Various exemplary embodiments, features and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers can indicate functionally identical or similar elements. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The word "exemplary" is used exclusively herein to mean "serving as an example, embodiment, or illustration. Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a better understanding of the present disclosure. It will be understood by those skilled in the art that the present disclosure may be practiced without some of these specific details. In some instances, methods, means, elements and circuits that are well known to those skilled in the art have not been described in detail so as not to obscure the present disclosure.
Example 1
Fig. 1 shows a flow diagram of a video generation method according to an embodiment of the present disclosure. As shown in fig. 1, the video generation method includes:
in step S11, in the process of live video live broadcasting, a video clip of the live video and an identifier of the video clip of the live video are obtained.
In this embodiment, in the live video broadcast process, the current live video clip of the live video and the identifier of the current live video clip can be continuously acquired, so that a plurality of video clips of the live video and identifiers of the video clips can be acquired.
The identifier of the video clip may be an ID (Identification number) of the video clip, which is not limited herein.
In step S12, a latest on-demand segment identifier set corresponding to the live video is generated according to the identifier of the currently live video segment and the identifier of the video segment that is completed in the live video.
As an example of this embodiment, in order from the front to the back of the playing time, the identifier of the video that is finished by live broadcast and the identifier of the video segment that is currently live broadcast may be serially spliced to generate the latest on-demand segment identifier set corresponding to the live video.
In this embodiment, each identifier in the latest on-demand segment identifier set corresponds to a video segment. And finding out the corresponding video clip according to the identifier in the latest on-demand clip identifier set.
In step S13, when the currently live video segment is the last video segment of the live video, the latest on-demand segment identifier set is used as the on-demand video identifier set corresponding to the live video.
In the case that the currently live video segment is the last video segment of the live video, it may be indicated that all video segments of the live video and the identifications of all video segments have been acquired. Therefore, when the current live video segment is the last video segment of the live video, the latest on-demand segment identifier set can be determined as the on-demand video identifier set corresponding to the live video. That is, the on-demand video identification set includes the identification of all video segments.
In step S14, the video segments corresponding to the on-demand video identifier set are spliced to generate a first on-demand video.
In this embodiment, the video segments corresponding to the on-demand video identifier set are physically spliced to generate a first on-demand video. The first click video may be for persistent storage.
As an example of this embodiment, the video segments corresponding to the on-demand video identifier set may be spliced and transcoded to generate a first on-demand video.
As an example of this embodiment, when a physical splicing task is detected, the video segments corresponding to the on-demand video identifier set may be spliced to generate a first on-demand video.
According to the embodiment, the on-demand video corresponding to the live video can be rapidly released, the time delay of releasing the on-demand video corresponding to the live video is greatly reduced, the first on-demand video is obtained by splicing all video segments of the live video, and the persistent storage of the on-demand video corresponding to the live video can be realized.
Fig. 2 illustrates an exemplary flow diagram of a video generation method according to an embodiment of the present disclosure. As shown in fig. 2, the video generation method includes:
in step S21, in the process of live video live broadcasting, a video clip of the live video and an identifier of the video clip of the live video are obtained.
See the description above for step S11 for step S21.
In step S22, a latest on-demand segment identifier set corresponding to the live video is generated according to the identifier of the currently live video segment and the identifier of the video segment that is completed in the live video.
See the description above for step S12 for step S22.
In step S23, when the currently live video segment is the last video segment of the live video, the latest on-demand segment identifier set is used as the on-demand video identifier set corresponding to the live video.
See the description above for step S13 for step S23.
In step S24, the video segments corresponding to the on-demand video identifier set are spliced to generate a first on-demand video.
See the description above for step S14 for step S24.
In step S25, verification information corresponding to the on-demand video identifier set is generated.
The verification information corresponding to the on-demand video identification set may be generated by using MD5(Message Digest Algorithm, fifth edition). The verification information may be MD5 information forged against the on-demand video identification set, and is not limited herein.
In step S26, the verification information is associated with the first video on demand.
Wherein the verification information may be used to uniquely identify the first video on demand.
In a possible implementation manner, the video definitions of the video segments corresponding to the latest on-demand segment identifier set are all first definitions, and the first on-demand video is an on-demand video with the first definition corresponding to the live video. In this implementation manner, the video definitions of the video segments corresponding to the latest on-demand segment identifier set are the same and are all the first definition. And the latest on-demand segment identification set generated according to the identification of each video segment with the first definition is the latest on-demand segment identification set with the first definition.
In one possible implementation, the method further includes: and under the condition that the on-demand videos with other definitions corresponding to the live video exist, associating the first on-demand video with the on-demand videos with other definitions to obtain an on-demand video set corresponding to the live video. In this implementation, the source file of the live video may include other definitions in addition to the first definition. In the event that the source file of the live video includes other definitions, other definitions of the on-demand video may be generated. For example, the first Definition may be Standard Definition (Standard Definition), and the other definitions may include High Definition (High D)efficacy), ultra-clear (Super Definition), or 3GPP (3 GPP)rdGeneration Partnership Project), high definition in file format, and the like, without limitation. The resolution of each sharpness may be determined by those skilled in the art according to the actual application scenario, and is not limited herein.
Fig. 3 illustrates another exemplary flow diagram of a video generation method according to an embodiment of the present disclosure. As shown in fig. 3, the method includes:
in step S31, in the process of live video live broadcasting, a current live video clip of a first definition of the live video and an identifier of the current live video clip of the first definition are obtained.
For example, the first definition may be a standard definition, and is not limited herein.
In step S32, a latest on-demand segment identifier set of the first definition corresponding to the live video is generated according to the identifier of the currently live video segment of the first definition and the identifier of the video segment of the first definition that is completed in the live video.
In this example, a corresponding latest on-demand segment identification set is generated according to the identifications of the currently live video segment and the live video segment with the same definition. For example, a latest on-demand segment identifier set of the first definition corresponding to the live video may be generated according to the identifier of the currently live video segment of the first definition and the identifier of the video segment of the first definition that is completed in the live broadcast.
In this example, each of the identifiers in the latest on-demand segment identifier set of the first definition corresponds to a video segment of the first definition. According to the mark in the latest on-demand segment mark set with the first definition, the corresponding video segment with the first definition can be found.
In step S33, when the current live video segment with the first definition is the last video segment with the first definition of the live video, the latest on-demand segment identifier set with the first definition is used as the on-demand video identifier set with the first definition corresponding to the live video.
And in the case that the current live video clip with the first definition is the last video clip with the first definition of the live video, the identification of all the video clips with the first definition of the live video and all the video clips with the first definition are indicated. Therefore, under the condition that the current live video segment with the first definition is the last video segment with the first definition of the live video, the latest on-demand segment identification set with the first definition can be determined as the on-demand video identification set with the first definition corresponding to the live video. That is, the first definition on-demand video identification set includes identifications of all video segments of the first definition.
In step S34, the video segments corresponding to the on-demand video identifier set with the first definition are spliced to generate a first on-demand video, where the first on-demand video is an on-demand video with the first definition corresponding to the live video.
In this example, the video segments corresponding to the first definition on-demand video identifier set may be physically spliced to generate a first on-demand video. The first click video may be for persistent storage.
In step S35, verification information corresponding to the first definition on-demand video identifier set is generated.
The MD5 may be used to generate verification information corresponding to the first definition on-demand video identifier set. The verification information may be MD5 information forged for the first definition on-demand video identification set, which is not limited herein.
In step S36, the verification information is associated with the first video on demand.
And according to the verification information corresponding to the on-demand video identification set with the first definition, an on-demand video identification packet corresponding to the on-demand video identification set with the first definition can be generated. The check information can be used for uniquely determining the on-demand video identification packet corresponding to the on-demand video identification set with the first definition.
In step S37, in the case that there is an on-demand video with other definition corresponding to the live video, the first on-demand video is associated with the on-demand video with other definition to obtain an on-demand video set corresponding to the live video.
As an example of this embodiment, a source file of a live video includes a first definition, a second definition, and a third definition. For example, the first definition may be standard definition, the second definition may be high definition, and the third definition may be super definition, which is not limited herein. Three processing tasks may be generated for stitching the identifications of the video segments of the first definition, the second definition, and the third definition, respectively. For example, the live video includes 5 video segments of a first definition, 5 video segments of a second definition, and 5 video segments of a third definition. The identifiers of the 5 first definition video segments are respectively FilID 01, FilID 02, FilID 03, FilID 04 and FilID 05, the identifiers of the 5 second definition video segments are respectively FilID 001, FilID 002, FilID 003, FilID 004 and FilID 005, and the identifiers of the 5 third definition video segments are respectively FilID 0001, FilID 0002, FilID 0003, FilID 0004 and FilID 0005. According to the identifiers of the 5 video segments with the first definition, an on-demand video identifier set with the first definition can be generated; according to the identifiers of the 5 video segments with the second definition, an on-demand video identifier set with the second definition can be generated; from the identifications of the 5 third definition video segments, a third definition on-demand video identification set may be generated. The verification information MD 51 corresponding to the on-demand video identifier set with the first definition, the verification information MD 52 corresponding to the on-demand video identifier set with the second definition, and the verification information MD 53 corresponding to the on-demand video identifier set with the third definition may be generated. According to the verification information MD 51 corresponding to the on-demand video identification set with the first definition, an on-demand video identification packet (mediaID 1) corresponding to the on-demand video identification set with the first definition can be generated; according to the verification information MD 52 corresponding to the on-demand video identification set with the second definition, an on-demand video identification packet (mediaID 2) corresponding to the on-demand video identification set with the second definition can be generated; and generating an on-demand video identification packet (MediaID 3) corresponding to the on-demand video identification set with the third definition according to the verification information MD 53 corresponding to the on-demand video identification set with the third definition. According to the 5 video segments with the first definition, a first on-demand video, namely an on-demand video with the first definition, can be generated; according to the 5 video segments with the second definition, a second video-on-demand can be generated, namely the video-on-demand with the second definition; from the 5 third definition video segments, a third video on demand, i.e., a third definition video on demand, may be generated. And associating the first on-demand video, the second on-demand video and the third on-demand video to obtain an on-demand video set corresponding to the live video.
In step S38, an upload voucher corresponding to the on-demand video set is obtained.
Wherein an upload token (upload token) may be used for transcoding.
In step S39, a target video corresponding to the on-demand video set is generated according to the upload voucher.
The target video can be a complete on-demand video corresponding to the live video. By generating the target video, the persistent storage of the complete on-demand video corresponding to the live video can be realized, the corresponding complete on-demand video is obtained without manually recording the live video again, and the recording cost and the labor cost for generating the complete on-demand video can be reduced.
Example 2
Fig. 4 shows a block diagram of a video generation apparatus according to an embodiment of the present disclosure. As shown in fig. 4, the apparatus includes: a first obtaining module 41, configured to obtain, in a live video broadcast process, a video clip of a live video currently broadcast and an identifier of the video clip currently broadcast; a first generating module 42, configured to generate a latest on-demand segment identifier set corresponding to the live video according to the identifier of the currently live video segment and the identifier of the video segment that is completed in the live broadcast; a determining module 43, configured to, when the current live video segment is a last video segment of the live video, use the latest on-demand segment identifier set as an on-demand video identifier set corresponding to the live video; and the second generating module 44 is configured to splice the video segments corresponding to the on-demand video identifier set to generate a first on-demand video.
Fig. 5 is an exemplary block diagram of a video generation apparatus according to an embodiment of the present disclosure. As shown in fig. 5:
in one possible implementation, the apparatus further includes: a third generating module 45, configured to generate verification information corresponding to the on-demand video identifier set; a first associating module 46 for associating the verification information with the first on-demand video.
In a possible implementation manner, the video definitions of the video segments corresponding to the latest on-demand segment identifier set are all first definitions, and the first on-demand video is an on-demand video with a first definition corresponding to the live video.
In one possible implementation, the apparatus further includes: and a second associating module 47, configured to associate the first on-demand video with on-demand videos with other definitions under the condition that on-demand videos with other definitions corresponding to the live video exist, so as to obtain an on-demand video set corresponding to the live video.
In one possible implementation, the apparatus further includes: a second obtaining module 48, configured to obtain an upload credential corresponding to the on-demand video set; and a fourth generating module 49, configured to generate a target video corresponding to the on-demand video set according to the upload credential.
According to the embodiment, the on-demand video corresponding to the live video can be rapidly released, the time delay of releasing the on-demand video corresponding to the live video is greatly reduced, the first on-demand video is obtained by splicing all video segments of the live video, and the persistent storage of the on-demand video corresponding to the live video can be realized.
Example 3
Fig. 6 is a block diagram illustrating an apparatus 800 for video generation according to an example embodiment. For example, the apparatus 800 may be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a game console, a tablet device, a medical device, an exercise device, a personal digital assistant, and the like.
Referring to fig. 6, the apparatus 800 may include one or more of the following components: processing component 802, memory 804, power component 806, multimedia component 808, audio component 810, input/output (I/O) interface 812, sensor component 814, and communication component 816.
The processing component 802 generally controls overall operation of the device 800, such as operations associated with display, telephone calls, data communications, camera operations, and recording operations. The processing components 802 may include one or more processors 820 to execute instructions to perform all or a portion of the steps of the methods described above. Further, the processing component 802 can include one or more modules that facilitate interaction between the processing component 802 and other components. For example, the processing component 802 can include a multimedia module to facilitate interaction between the multimedia component 808 and the processing component 802.
The memory 804 is configured to store various types of data to support operations at the apparatus 800. Examples of such data include instructions for any application or method operating on device 800, contact data, phonebook data, messages, pictures, videos, and so forth. The memory 804 may be implemented by any type or combination of volatile or non-volatile memory devices such as Static Random Access Memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic or optical disks.
Power components 806 provide power to the various components of device 800. The power components 806 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the apparatus 800.
The multimedia component 808 includes a screen that provides an output interface between the device 800 and a user. In some embodiments, the screen may include a Liquid Crystal Display (LCD) and a Touch Panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive an input signal from a user. The touch panel includes one or more touch sensors to sense touch, slide, and gestures on the touch panel. The touch sensor may not only sense the boundary of a touch or slide action, but also detect the duration and pressure associated with the touch or slide operation. In some embodiments, the multimedia component 808 includes a front facing camera and/or a rear facing camera. The front camera and/or the rear camera may receive external multimedia data when the device 800 is in an operating mode, such as a shooting mode or a video mode. Each front camera and rear camera may be a fixed optical lens system or have a focal length and optical zoom capability.
The audio component 810 is configured to output and/or input audio signals. For example, the audio component 810 includes a Microphone (MIC) configured to receive external audio signals when the apparatus 800 is in an operational mode, such as a call mode, a recording mode, and a voice recognition mode. The received audio signals may further be stored in the memory 804 or transmitted via the communication component 816. In some embodiments, audio component 810 also includes a speaker for outputting audio signals.
The I/O interface 812 provides an interface between the processing component 802 and peripheral interface modules, which may be keyboards, click wheels, buttons, etc. These buttons may include, but are not limited to: a home button, a volume button, a start button, and a lock button.
The sensor assembly 814 includes one or more sensors for providing various aspects of state assessment for the device 800. For example, the sensor assembly 814 may detect the open/closed status of the device 800, the relative positioning of components, such as a display and keypad of the device 800, the sensor assembly 814 may also detect a change in the position of the device 800 or a component of the device 800, the presence or absence of user contact with the device 800, the orientation or acceleration/deceleration of the device 800, and a change in the temperature of the device 800. Sensor assembly 814 may include a proximity sensor configured to detect the presence of a nearby object without any physical contact. The sensor assembly 814 may also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, the sensor assembly 814 may also include an acceleration sensor, a gyroscope sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.
The communication component 816 is configured to facilitate communications between the apparatus 800 and other devices in a wired or wireless manner. The device 800 may access a wireless network based on a communication standard, such as WiFi, 2G or 3G, or a combination thereof. In an exemplary embodiment, the communication component 816 receives a broadcast signal or broadcast related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 816 further includes a Near Field Communication (NFC) module to facilitate short-range communications. For example, the NFC module may be implemented based on radio frequency identification (RF identification) technology, infrared data association (IrDA) technology, Ultra Wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
In an exemplary embodiment, the apparatus 800 may be implemented by one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), controllers, micro-controllers, microprocessors or other electronic components for performing the above-described methods.
In an exemplary embodiment, a non-transitory computer-readable storage medium is also provided, such as the memory 804 including instructions executable by the processor 820 of the device 800 to perform the above-described method.
Example 4
Fig. 7 is a block diagram illustrating an apparatus 1900 for video generation according to an example embodiment. For example, the apparatus 1900 may be provided as a server. Referring to fig. 7, the device 1900 includes a processing component 1922 further including one or more processors and memory resources, represented by memory 1932, for storing instructions, e.g., applications, executable by the processing component 1922. The application programs stored in memory 1932 may include one or more modules that each correspond to a set of instructions. Further, the processing component 1922 is configured to execute instructions to perform the video generation method described above.
The device 1900 may also include a power component 1926 configured to perform power management of the device 1900, a wired or wireless network interface 1950 configured to connect the device 1900 to a network, and an input/output (I/O) interface 1958. The device 1900 may operate based on an operating system stored in memory 1932, such as Windows Server, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, or the like.
In an exemplary embodiment, a non-transitory computer readable storage medium is also provided that includes instructions, such as the memory 1932 that includes instructions, which are executable by the processing component 1922 of the apparatus 1900 to perform the above-described method.
The present disclosure may be systems, methods, and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for causing a processor to implement various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present disclosure may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, the electronic circuitry that can execute the computer-readable program instructions implements aspects of the present disclosure by utilizing the state information of the computer-readable program instructions to personalize the electronic circuitry, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA).
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.