Timecode generation and assignment
Abstract
A timecoding technique for determining and assigning timecodes for variable frame rate video. Content identified for timecode assignment is decoded, and for sequential frames of the content, portions of timestamps are compared to determine if the frames are from a same time period (e.g., from the same second in time). For a subsequent frame from the same time period, an index is atomically incremented, a timecode generated from a combination of the time period and the index, and the timecode assigned to the frame. For a subsequent frame from a different time period, the index is initialized, a timecode generated from a combination of the different time period and the initialized index, and the timecode assigned to the frame. Accumulated durations of frames may be used in place of timestamps, in some instances.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A system, comprising:
one or more computing devices configured to implement a transcoder configured to:
receive a content;
decode the content;
determine, for frames of a plurality of video frames of the content and based on accumulated durations of one or more of the frames, time periods to which the frames are assigned;
for individual ones of the time periods to which frames are assigned:
index the frames of the time period to establish a sequence of the frames assigned to the time period,
assign a first frame in the index a time code based on the respective time period and an initial index value, and
for each subsequent frame in the index:
increment the index value, and
assign a time code based on the respective time period and the incremented index value to the respective frame;
wherein, for one or more of the time periods, a time period portion of the time code increments to the next time period even though an index portion of the time code has not reached a point at which constant frame rate video processing would go to the next time period; and
process, based at least in part on the time codes, at least a portion of the video frames.
2. The system of claim 1 , wherein:
the first frame in the index is assigned the time code based on the respective time period and the initial index value regardless of when the frame occurs in the time period; and
the subsequent frames are assigned subsequent index values regardless of when the subsequent frames occur in the respective time period.
3. The system of claim 1 , wherein for a set of sequential frames of the plurality of video frames, differences between respective timestamps of sequential frames does not correspond to differences between respective timecodes for the sequential frames.
4. The system of claim 1 , further comprising:
a provider network of a service provider that provides compute and storage services to a plurality of distinct clients of the service provider;
wherein the service provider network provides access to the transcoder over the provider network as a service to the plurality of distinct clients.
5. The system of claim 1 , further comprising:
a service provider network comprising one or more computing devices configured to implement a storage service and a content delivery network;
wherein:
the service provider network provides access to the transcoder over the provider network as a service to a plurality of distinct clients;
the transcoder transcodes the content into a plurality of distinct formats;
the plurality of distinct formats of the content are stored by the storage service; and
the content delivery network provides the content in the plurality of distinct formats for consumption by content consumers.
6. The system of claim 1 , wherein the transcoder is configured to:
transcode, based at least in part on the newly-assigned time codes of the frames, the content into one or more distinct files each having a distinct format; and
transmit the distinct files to one or more data stores for storage.
7. A method, comprising:
performing a timecoding technique comprising:
determining, for frames of a plurality of video frames of a content and based on accumulated durations of one or more of the frames, time periods to which the frames are assigned; and
for individual ones of the time periods to which frames are assigned:
indexing the frames of the time period to establish a sequence of the frames assigned to the time period,
assigning a first frame in the index a time code based on the respective time period and an initial index value, and
for each subsequent frame in the index:
incrementing the index value, and
assigning a time code based on the respective time period and the incremented index value to the respective frame;
wherein, for one or more of the time periods, a time period portion of the time code increments to the next time period even though an index portion of the time code has not reached a point at which constant frame rate video processing would go to the next time period.
8. The method of claim 7 , wherein a difference between timestamps of frames of the content does not necessarily correspond to differences between timecodes for the respective frames.
9. The method of claim 7 , further comprising:
determining that the frames of the content do not include embedded timecodes; and
performing, responsive to said determining that the frames of the content do not include embedded timecodes, said timecoding technique for the frames of the content.
10. The method of claim 7 , comprising:
determining that the frames of the content do include embedded timecodes;
determining that a selectable option to assign new timecodes to the video frames of content has been selected; and
performing, responsive to said determining that the selectable option to assign new timecodes to the video frames of content has been selected, said timecoding technique for the frames of the content.
11. The method of claim 7 , comprising:
determining that the content is encoded at a variable frame rate; and
performing, responsive to said determining that the content is encoded at the variable frame rate, said timecoding technique for the frames of the content.
12. The method of claim 7 , comprising:
receiving, at a service provider network, a plurality of content files;
determining that a first content file of the content files is not variable frame rate, and using one or more standard processing techniques to process the first content file into multiple distinct content files, each suitable for delivery via a content delivery network to respective distinct types of display devices; and
determining that a second content file of the content files is variable frame rate, and using said timecoding technique to process the first content file into multiple distinct content files, each suitable for delivery via the content delivery network to respective distinct types of display devices.
13. The method of claim 7 , wherein:
the first frame in the index is assigned the time code based on the respective time period and the initial index value regardless of when the frame occurs in the respective time period; and
the subsequent frames are assigned subsequent index values regardless of when the subsequent frames occur in the respective time period.
14. One or more non-transitory, computer-readable storage media storing program instructions that when executed on or across one or more hardware processors perform:
a timecoding technique comprising:
determining, for frames of a plurality of video frames of a content and based on accumulated durations of one or more of the frames, time periods to which the frames are assigned; and
for individual ones of the time periods to which frames are assigned:
indexing the frames of the time period to establish a sequence of the frames assigned to the time period,
assigning a first frame in the index a time code based on the respective time period and an initial index value, and
for each subsequent frame in the index:
incrementing the index value, and
assigning a time code based on the respective time period and the incremented index value to the respective frame;
wherein, for one or more of the time periods, a time period portion of the time code increments to the next time period even though an index portion of the time code has not reached a point at which constant frame rate video processing would go to the next time period.
15. The one or more non-transitory, computer-readable storage media of claim 14 , wherein for a set of sequential frames of the plurality of video frames, differences between timestamps of sequential frames does not correspond to differences between respective timecodes for the sequential frames.
16. The one or more non-transitory, computer-readable storage media of claim 14 , storing program instructions that when executed perform:
determining that the frames of the content do not include embedded timecodes; and
performing, responsive to said determining that the frames of the content do not include embedded timecodes, said timecoding technique for the frames of the content.
17. The one or more non-transitory, computer-readable storage media of claim 14 , storing program instructions that when executed perform:
determining that the frames of the content do include embedded timecodes;
determining that a selectable option to assign new timecodes to the video frames of content has been selected; and
performing, responsive to said determining that the selectable option to assign new timecodes to the video frames of content has been selected, said timecoding technique for the frames of the content.
18. The one or more non-transitory, computer-readable storage media of claim 14 , storing program instructions that when executed perform:
determining that the content is encoded at a variable frame rate; and
performing, responsive to said determining that the content is encoded at the variable frame rate, said timecoding technique for the frames of the content.
19. The one or more non-transitory, computer-readable storage media of claim 14 , storing program instructions that when executed perform:
receiving, at a service provider network, a plurality of content files;
determining that a first content file of the content files is not variable frame rate, and using one or more standard processing techniques to process the first content file into multiple distinct content files, each suitable for delivery via a content delivery network to respective distinct types of display devices; and
determining that a second content file of the content files is variable frame rate, and using said timecoding technique to process the first content file into multiple distinct content files, each suitable for delivery via the content delivery network to respective distinct types of display devices.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.