[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN113852824A - 视频转码方法、装置、电子设备和存储介质 - Google Patents

视频转码方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113852824A
CN113852824A CN202111192912.XA CN202111192912A CN113852824A CN 113852824 A CN113852824 A CN 113852824A CN 202111192912 A CN202111192912 A CN 202111192912A CN 113852824 A CN113852824 A CN 113852824A
Authority
CN
China
Prior art keywords
video
time
frame
source stream
transcoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111192912.XA
Other languages
English (en)
Inventor
许东旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN202111192912.XA priority Critical patent/CN113852824A/zh
Publication of CN113852824A publication Critical patent/CN113852824A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及通信技术领域,公开了一种视频转码方法、装置、电子设备和存储介质,方法包括:根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长;根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃;根据输出帧率对源流视频进行转码,将各关键帧的时间戳更新为各关键帧在源流视频中的初始时间戳,并根据各关键帧的时间戳更新其余各非关键帧的时间戳。通过在视频转码过程中将转码前后的视频的关键帧时间戳对齐,并对其余各非关键帧的时间戳进行适应性更新,使得转码后的源流视频能够根据时间戳对齐后的关键帧,对视频的清晰度进行平滑切换。

Description

视频转码方法、装置、电子设备和存储介质
技术领域
本申请实施例涉及通信技术领域,特别涉及一种视频转码方法、装置、电子设备和存储介质。
背景技术
随着通信技术和互联网的不断发展,用户通过移动设备进行视频的播放或者直播的收看成为常态。而基于网络状态和设备自身的限制等因素,用户在移动设备上进行视频播放时会根据实际情况进行清晰度的选择或者变更,内容提供商,例如,内容分发网络(Content Delivery Network,CDN)云服务厂商,需要根据用户的选择支持视频在不同清晰度之间的灵活切换。
在云视频转码领域,内容提供商通过对视频进行转码的方式支持不同清晰度切换,因为播放需要从关键帧开始,清晰度切换完成后的视频会重新定位距离当前时刻最近的一个关键帧,从最近的关键帧开始清晰度切换后的视频的播放。为了保证用户的观看体验,需要保证视频在进行清晰度切换时的平滑性,通常内容提供商处的终端设备会根据切换后的清晰度计算出转码后的视频流的目标输出帧率,在当前视频流的帧率和目标帧率不同的情况下,在显示时间戳相同的时刻对应的位置,对转码后的视频流进行插帧处理,使得转码后的视频流在经过插帧处理后,输出帧率变更为目标输出帧率,从而实现视频流在不同清晰度之间的平滑切换。
但是,根据目标输出帧率对视频流进行帧率变换后,转码视频流中进行插帧处理的时刻对应的视频帧和原视频在这一时刻对应的视频帧很可能不是同一个视频帧,此时恢复播放后,转码后的视频的播放进度与转码前的播放进度存在误差,用户体验较差。
发明内容
本申请实施例的主要目的在于提出一种视频转码方法、装置、电子设备和存储介质,旨在通过在视频转码过程中将转码前后的视频的关键帧时间戳对齐,使得后续能够根据时间戳对齐后的关键帧对视频的清晰度进行平滑切换。
为实现上述目的,本申请实施例提供了一种视频转码方法,包括:根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长;根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃;根据输出帧率对源流视频进行转码,将各关键帧的时间戳更新为各关键帧在源流视频中的初始时间戳,并根据各关键帧的时间戳更新其余各非关键帧的时间戳。
为实现上述目的,本申请实施例还提出了一种视频转码装置,包括:获取模块,用于根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长;筛选模块,用于根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃;转码模块,用于根据输出帧率对源流视频进行转码,将各关键帧的时间戳更新为各关键帧在源流视频中的初始时间戳,并根据各关键帧的时间戳更新其余各非关键帧的时间戳。
为实现上述目的,本申请实施例还提出了一种电子设备,设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的视频转码方法。
为实现上述目的,本申请实施例还提出了计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的视频转码方法。
本申请实施例提供的视频转码方法,在对源流视频进行转码前,根据转码后的输出帧率确定转码后每帧的播放时长,并根据源流视频各视频帧的时间戳信息和播放时长筛选出不满足解码时间单调递增的视频帧并丢弃,通过丢弃部分视频帧的方式,避免对转码后的视频中关键帧的时间戳进行更新后,转码后的视频无法满足视频帧解码时间单调递增的条件,保证源流视频能够顺利转码输出和流畅的播放;在根据输出帧率对源流视频进行转码后,将转码后的视频中的关键帧时间戳更新为各关键帧在源流视频中的初始时间戳,通过对转码后的视频中关键帧的时间戳进行重设的方式,保证转码后的视频和源流视频关键帧时间戳的强一致性;根据关键帧的时间戳对其余非关键帧时间戳进行更新,使得转码后的视频中各视频帧时间戳按照时间顺序均匀分布,通过将各视频帧时间戳对应的时刻在时间轴上均匀分布,保证转码后的视频播放时的流畅性,实现清晰度的平滑切换。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是本申请实施例中的视频转码方法的流程图;
图2是本申请实施例中的视频帧筛选方法的流程图;
图3是本申请实施例中的视频帧丢弃方法的流程图;
图4是本申请实施例中的时间戳更新方法的流程图;
图5是本申请另一实施例中的视频转码装置的结构示意图;
图6是本申请另一实施例中的电子设备的结构示意图。
具体实施方式
由背景技术可知,根据目标输出帧率对视频流进行帧率变换后,转码视频流中进行插帧处理的时刻对应的视频帧和原视频在这一时刻对应的视频帧很可能不是同一个视频帧,此时恢复播放后,转码后的视频的播放进度与转码前的播放进度存在误差,用户体验较差。因此,如何保证转码前后视频关键帧的时间戳对应的时刻一致,进行清晰度切换后的视频能够从同一播放进度恢复视频播放是一个迫切需要得到解决的问题。
为了解决上述问题,本申请的实施例提供了一种视频转码方法,包括:根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长;根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足转码时间单调递增的视频帧并丢弃;根据输出帧率对源流视频进行转码,将各关键帧的时间戳更新为各关键帧在源流视频中的初始时间戳,并根据各关键帧的时间戳更新其余各非关键帧的时间戳。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
下面将结合一些示例性的实施例的对本申请记载的视频转码方法的实现细节进行说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本申请实施例的第一方面提供了一种视频转码方法,视频转码方法的流程参考图1,在一些实施例中,视频转码方法应用于提供多种清晰度视频的云服务厂商终端、直播服务器等电子设备,具体包括以下步骤:
步骤101,根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长。
具体地说,云服务厂商的终端设备在为用户提供视频服务的时候,接收用户的视频播放请求,根据用户的视频播放请求中的清晰度信息,确定需要为用户提供的视频的清晰度。根据需要为用户提供的视频的清晰度,确定源流视频转码后的输出帧率,根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长,便于后续对源流视频进行转码前的视频帧筛选。通过获取指定清晰度对应的输出帧率,确定转码后源流视频每帧的播放时长,准确的获取到转码后源流视频的播放速度,便于后续对不符合条件的视频帧进行筛选。
步骤102,根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足转码时间单调递增的视频帧并丢弃。
具体地说,云服务厂商的终端设备在源流视频生成的时候,预先存储源流视频中各视频帧的时间戳信息。在确定转码后源流视频的输出帧率,以及每一视频帧的播放时长后,根据播放时长和源流视频中各视频帧的时间戳信息,对源流视频中的视频帧进行筛选。筛选出源流视频中不满足解码时间单调递增的视频帧,并将筛选出的视频帧丢弃。通过根据播放时长和各视频帧在源流视频中的时间戳信息,对源流视频中不满足要求的视频帧进行选择性丢弃,避免了对关键帧时间戳进行更新后,转码后的源流视频中各视频帧的解码时间不满足单调递增的要求,从而导致转码后的视频的播放出现不顺畅的问题,保证清晰度切换后的视频的流畅性。
在一个例子中,云服务厂商的终端设备根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃,包括:将源流视频中参考视频帧的解码时间戳作为基准时间戳;获取当前视频帧与参考视频帧之间的帧数差,以及当前视频帧解码时间戳与基准时间戳之间的时间间隔;检测时间间隔是否小于帧数差与播放时长的乘积;在时间间隔小于帧数差与播放时长的乘积的情况下,丢弃当前视频帧。
具体地说,云服务厂商的终端设备可以在对源流视频进行转码前,预先获取并存储源流视频各视频帧的时间戳信息。例如,将源流视频所有视频帧的时间戳信息存储在队列A中,将各关键帧的时间戳信息存储在队列B中。在转码过程中需要对源流视频的输出帧率进行转换,因此需要基于编码增大解码时间单调递增的原则,对源流视频中的视频帧进行选择性丢弃。云服务厂商的终端设备在进行视频帧筛选时,根据转码后源流视频的输出帧率,计算出转码后源流视频每帧的播放时长t。然后可以将源流视频中的首个视频帧作为参考视频帧,将其余各视频帧作为待筛选的视频帧,按照各视频帧的编码顺序,依次进行筛选。云服务厂商的终端设备对源流视频进行视频帧筛选的流程如图2所示,包括:
步骤201读取参考视频帧的时间戳信息,获取参考视频帧的解码时间戳。
具体地说,云服务厂商读取预先存储的源流视频时间戳信息,并选取在源流视频的视频帧中选取一个关键帧。然后将参考视频帧的解码时间戳作为基准时间戳,将基准时间戳对应的时刻记为Firstdts。
步骤202,检测当前视频帧与参考视频帧之间的解码时间差是否满足预设条件,在解码时间差满足预设条件情况下,进入步骤203,丢弃当前视频帧;在解码时间差不满足预设条件情况的情况下,进入步骤204,保留当前视频帧,并对当前视频帧进行编码。
具体地说,云服务器厂商的终端设备从队列A中读取正在根据转码时间进行筛选的当前视频帧的时间戳信息,将当前视频帧的解码时刻戳记为currentdts。然后根据当前视频帧和参考视频帧的编码,确定当前视频帧和参考视频帧之间的帧数差framenum。结合预先获取的转码后源流视频每帧的播放时长t,将以下公式作为预设条件,检测当前视频帧是否满足解码时间单调递增的要求:
currentdts–firstdts<t×framenum
即,获取当前视频帧与参考视频帧之间的解码时间差,检测解码时间差是否小于当前视频帧与参考视频帧之间的帧数差与转码后每帧的播放时长t的乘积。在当前视频帧与参考视频帧之间的解码时间差满足上述公式的情况下,判定当前视频帧转码后的解码时间会晚于在源流视频中的解码时间,会导致后续各视频帧的解码时间向后延迟,即在关键帧的时间戳信息更新后,无法满足解码时间单调递增的要求,需要丢弃当前视频帧,进入步骤203,丢弃当前视频帧。在当前视频帧与参考视频帧之间的解码时间差不满足上述公式的情况下,判定当前视频帧在关键帧的时间戳信息更新后,能够满足解码时间单调递增的要求,进入步骤204,保留当前视频帧,并对当前视频帧进行编码。通过根据编码增大解码时间戳对应时刻单调递增的原则,利用转码后每帧的播放时长与各视频帧的时间戳信息,筛选出会导致转码后源流视频中其余视频帧转码时间发生延迟的视频帧并丢弃,使得转码后的源流视频中各视频帧的解码时间随编码增大单调递增,保证转码后的视频能够流畅的播放。
进一步地,云服务厂商的终端设备在丢弃当前视频帧前,还包括:检测当前视频帧是否为源流视频中的关键帧;在当前视频帧为源流视频中的关键帧的情况下,保留当前视频帧;在当前视频帧不是源流视频中的关键帧的情况下,丢弃当前视频帧。为了保证转码后的源流视频中关键帧的数量、位置和时间戳信息均与转码前一致,在对源流视频的视频帧进行筛选和丢弃的过程中,在检测到当前视频帧需要丢弃的情况下,需要对当前视频帧进行进一步的检测。当前视频帧丢弃的流程图如图3所示,包括:
步骤301,检测当前视频帧是否为源流视频中的关键帧,在当前视频帧为关键帧的情况下,判定当前视频帧不可丢弃,进入步骤302,保留当前视频帧,并对当前视频帧进行编码;在当前视频帧不是源流视频中的关键帧的情况下,判定当前视频帧可以丢弃,进入步骤303,丢弃当前视频帧。然后继续对后续的待丢弃视频帧进行筛选。通过对待丢弃的当前视频帧进行是否为关键帧的检测,避免对源流视频中的关键帧进行误丢弃,导致转码后的源流视频的关键帧发生缺失,导致转码后的源流视频无法在误丢弃关键帧处恢复播放。
在另一个例子中,云服务厂商的终端设备在检测当前视频帧与参考视频帧的解码时间间隔是否小于帧数差与播放时长的乘积后,还包括:检测时间间隔是否大于第一预设时长;在时间间隔大于第一预设时长的情况下,将参考视频帧更新为当前视频帧。在对源流视频的视频帧进行筛选的过程中,为了避免当前视频帧和参考视频帧之间的帧数差过大导致计算量上升,可以根据筛选的进度定期的对参考视频帧进行更新。在每次检测完当前视频帧与参考视频帧的解码时间间隔是否小于帧数差与播放时长的乘积后,再对解码时间的时间间隔和第一预设时长之间的关系进行检测。在时间间隔大于第一预设时长的情况下,判定参考视频帧和当前视频帧之间的帧数差已经较大,需要对参考视频帧进行更新。将参考视频帧更新为当前视频帧,并将基准时间戳更新为当前视频帧的解码时间戳,然后再继续对后续的视频帧进行筛选。通过根据第一预设时长和时间间隔的关系对参考视频帧进行更新,避免了参考视频帧和当前视频帧之间帧数差过大导致计算量上升,提升视频帧筛选的效率,进而提升视频转码的效率。
步骤103,根据输出帧率对源流视频进行转码,将各关键帧时间戳更新为各关键帧在源流视频中的初始时间戳,并根据关键帧的时间戳更新其余各非关键帧的时间戳。
具体地说,云服务厂商的终端设备在对源流视频的视频帧完成筛选后,根据转码后的输出帧率,通过编码器对各视频帧进行编码,并为各视频帧打上相应的时间戳。在编码完成后,将转码后的源流视频帧各关键帧的时间戳更新为各关键帧在源流视频中的初始时间戳,并根据各关键帧更新后的时间戳,对转码后的其余各非关键帧的时间戳进行更新。通过将转码后的源流视频各关键帧的时间戳更新为各关键帧在转码前的源流视频中的初始时间戳,使得转码后的源流视频各关键帧的时间戳能够保持不变,得到与转码前的源流视频关键帧时间戳信息一致的转码视频;通过根据各关键帧更新后的时间戳对非关键帧的时间戳进行更新,使得转码后的源流视频各视频帧的时间戳对应时刻能够均匀分布,保证转码视频能够流畅的播放。
进一步地,更新的时间戳包括:解码时间戳和显示时间戳。云服务厂商的终端设备更新源流视频中各视频帧的时间戳时,不仅对各视频帧的解码时间戳进行更新,还对各视频帧的显示时间戳进行更新,保证各视频帧解码顺序的同时,避免各视频帧由于显示时间戳不准确出现播放混乱的问题,进一步保证清晰度切换后的视频播放的流畅性。
在一个例子中,云服务厂商的终端设备根据各关键帧的时间戳更新其余各视频帧的时间戳,包括:对于每一个非关键帧,获取最接近的目标关键帧;获取目标关键帧转码后的时间戳与初始时间戳间的时间误差,根据时间误差,更新非关键帧转码后的时间戳。在通过编码器完成编码后,各视频帧都已经打上了新的时间戳,对各关键帧的时间戳进行更新的时候,终端设备可以保存各关键帧在转码后的时间戳信息,便于在各关键帧的时间戳更新完毕后,更新各非关键帧时间戳。为了保证转码后的源流视频各视频帧的时间戳对应时刻分布均匀,对非关键帧的时间戳进行更新时,将各非关键帧的时间戳对应时刻的变化与目标关键帧时间戳对应时刻的变化保持一致。对于每一个非关键帧,确定与自身最接近的目标关键帧,然后获取目标关键帧转码后的时间戳对应的时刻,与目标关键帧初始时间戳对应的时刻之间的时间误差,根据得到的时间误差对非关键帧转码后的时间戳进行更新。通过获取目标关键帧时间戳对应时刻的时间误差,并根据获取到的时间误差对各非关键帧的时间戳进行更新,使得转码后的源流视频各视频帧的时间戳在时间轴上分布尽可能均匀,保证转码后的源流视频播放过程中的流畅性。
进一步地,云服务厂商的终端设备根据时间误差,更新各非关键帧转码后的时间戳,包括:获取非关键帧转码后的时间戳对应的第一时刻;根据第一时刻和时间误差,生成目标时间戳,并将非关键帧转码后的时间戳更新为目标时间戳;其中,目标时间戳对应的第二时刻晚于第一时刻,且第一时刻和第二时刻间的时间间隔为时间误差。例如,预先存储的目标关键帧在转码后的解码时间戳对应时刻为dtsencoder,显示时间戳为ptsencoder,初始时间解码时间戳为dtsinitial,初始显示时间戳为ptsinitial,目标时间戳的时间误差中,解码时间误差dts offset=dtsinitial-dtsencoder,显示时间误差pts offset=ptsinitial-ptsencoder。当前非关键帧的解码时间戳对应的第一解码时刻为dtsout,显示时间戳对应的第一显示时刻为ptsout。则目标解码时间戳对应的第二解码时刻dtstarget=dtsout+dts offset,目标显示时间戳对应的第二显示时刻ptstarget=ptsout+ptsoffset。将非关键的解码时间戳和显示时间戳分别更新为对应时刻为dtstarget和ptstarget的目标时间戳。通过获取目标关键帧的时间戳对应时刻的时间误差,将非关键帧的时间戳更新为目标时间戳,目标时间戳对应时刻与当前时间戳对应时刻的时间误差与目标关键帧时间戳对应时刻的时间误差一致,从而使得转码后的源流视频各视频帧的时间戳对应时刻在时间轴上均匀分布。
更进一步地,云服务厂商的终端设备在将非关键帧转码后的时间戳更新为目标时间戳后,还包括:获取非关键帧之后的下一关键帧解码时间戳对应的第三时刻;检测第二时刻是否晚于第三时刻;在第二时刻晚于第三时刻的情况下,更新目标时间戳,将目标时间戳对应的时刻向前调整第二预设时长。在对各非关键帧的时间戳进行更新后,各非关键解码时间戳对应的时刻可能晚于下一关键帧解码时间戳对应的时刻,为了保证转码后的源流视频各视频帧的解码时间随编码增加单调递增,需要对各非关键帧解码时刻进行进一步检测。获取当前非关键帧解码时间戳对应的第二时刻,当前非关键之后的下一关键帧解码时间戳对应的第三时刻,检测第二时刻是否晚于第三时刻,在第二时刻晚于第三时刻的情况下,根据第二预设时长T,对当前非关键帧的目标时间戳进行更新,更新后的目标解码时间戳对应时刻dtsnew=dtstarget-T,目标显示时间戳ptsnew=ptstarget-T。其中,第二预设时长可以根据实际需要进行设置,例如,设置为16ms,本实施例对此不做限制。通过根据第二预设时长,对目标时间戳对应时刻晚于下一关键帧更新后的时间戳对应时刻的非关键帧时间戳进行更新,保证转码后的源流视频中各视频帧的时间戳对应时刻随着编码单调递增,保证转码后的源流视频播放的流畅性。
即,在为编码后的视频帧进行时间戳更新的流程图如图4所示,包括:
步骤401,检测当前视频帧是否为关键帧,若当前视频帧为关键帧,则进入步骤402,将当前视频帧时间戳更新为初始时间戳;若当前视频帧不是关键帧,则进入步骤403,根据目标关键帧时间戳对应时刻的时间误差,更新当前视频帧时间戳。
步骤402,将当前视频帧时间戳更新为初始时间戳。
具体地说,云端服务获取当前关键帧在源流视频帧的初始时间戳,将当前关键帧的时间戳更新为初始时间戳,并记录当前关键帧时间戳对应时刻的时间误差。
步骤403,根据目标关键帧时间戳对应时刻的时间误差,更新当前视频帧时间戳。
具体地说,云端服务检测到当前视频帧为非关键帧的情况下,获取最接近的目标关键帧的时间戳信息,根据目标关键帧更新前后时间戳对应时刻的时间误差,将当前视频帧时间戳对应时刻向后移动相应的时刻,得到当前视频帧更新后的时间戳。
步骤404,检测当前视频帧解码时间戳对应的第二时刻是否晚于下一关键帧解码时间戳对应的第三时刻,在第二时刻晚于第三时刻的情况下,进入步骤405,根据第二预设时长对当前视频帧时间戳进行更新;在第二时刻未晚于第三时刻的情况下,进入步骤406,输出转码后的视频。
另外,本实施例中,第一时刻可以是任意非关键帧转码后的时间戳对应的时刻,相应的第二时刻可以是任意非关键帧转码后的时间戳对应时刻经过时间误差后的时刻,第三时刻是任意非关键帧后的下一关键帧转码后的解码时间戳的对应时刻,这里是为了便于理解区分和叙述清楚,将这些时刻命名为第一时刻、第二时刻或第三时刻,实际应用中可以根据需要对这些时刻的命名进行更改和设置,本实施例对此不做限制。
此外,应当理解的是,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例的另一方面涉及一种视频转码装置,参考图5,包括:
获取模块501,用于根据源流视频转码后的输出帧率,获取转码后源流视频每帧的播放时长。
筛选模块502,用于根据播放时长和源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃。
转码模块503,用于根据输出帧率对源流视频进行转码,将各关键帧的时间戳更新为各关键帧在源流视频中的初始时间戳,并根据各关键帧的时间戳更新其余各非关键帧的时间戳。
不难发现,本实施例为与方法实施例相对应的装置实施例,本实施例可与方法实施例互相配合实施。方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在方法实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本申请实施例的另一方面还提供了一种电子设备,参考图6,包括:包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述任一方法实施例所描述的视频转码方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传输给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本申请实施例的另一方面还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (11)

1.一种视频转码方法,其特征在于,包括:
根据源流视频转码后的输出帧率,获取转码后所述源流视频每帧的播放时长;
根据所述播放时长和所述源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃;
根据所述输出帧率对所述源流视频进行转码,将各关键帧的时间戳更新为各所述关键帧在所述源流视频中的初始时间戳,并根据各所述关键帧的时间戳更新其余各非关键帧的时间戳。
2.根据权利要求1所述的视频转码方法,其特征在于,所述根据所述播放时长和所述源流视频中各视频帧的时间戳信息,筛选出不满足解码时间单调递增的视频帧并丢弃,包括:
将所述源流视频中参考视频帧的解码时间戳作为基准时间戳;
获取当前视频帧与所述参考视频帧之间的帧数差,以及所述当前视频帧解码时间戳与所述基准时间戳之间的时间间隔;
检测所述时间间隔是否小于所述帧数差与所述播放时长的乘积;
在所述时间间隔小于所述帧数差与所述播放时长的乘积的情况下,丢弃所述当前视频帧。
3.根据权利要求2所述的视频转码方法,其特征在于,在所述丢弃所述当前视频帧前,还包括:
检测所述当前视频帧是否为所述源流视频中的关键帧;
在所述当前视频帧为所述源流视频中的关键帧的情况下,保留所述当前视频帧;
在所述当前视频帧不是所述源流视频中的关键帧的情况下,丢弃所述当前视频帧。
4.根据权利要求2所述的视频转码方法,其特征在于,在所述检测所述时间间隔是否小于所述帧数差与所述播放时长的乘积后,还包括:
检测所述时间间隔是否大于第一预设时长;
在所述时间间隔大于所述第一预设时长的情况下,将所述参考视频帧更新为所述当前视频帧。
5.根据权利要求1所述的视频转码方法,其特征在于,所述根据各所述关键帧的时间戳更新其余各视频帧的时间戳,包括:
对于每一个非关键帧,获取最接近的目标关键帧;
获取所述目标关键帧转码后的时间戳与所述初始时间戳间的时间误差,根据所述时间误差,更新所述非关键帧转码后的时间戳。
6.根据权利要求5中所述的视频转码方法,其特征在于,所述根据所述时间误差,更新所述各非关键帧转码后的时间戳,包括:
获取所述非关键帧转码后的时间戳对应的第一时刻;
根据所述第一时刻和所述时间误差,生成目标时间戳,并将所述非关键帧转码后的时间戳更新为所述目标时间戳;
其中,所述目标时间戳对应的第二时刻晚于所述第一时刻,且所述第一时刻和所述第二时刻间的时间间隔为所述时间误差。
7.根据权利要求6所述的视频转码方法,其特征在于,在所述将所述非关键帧转码后的时间戳更新为所述目标时间戳后,还包括:
获取所述非关键帧之后的下一所述关键帧解码时间戳对应的第三时刻;
检测所述第二时刻是否晚于所述第三时刻;
在所述第二时刻晚于所述第三时刻的情况下,更新所述目标时间戳,将所述目标时间戳对应的时刻向前调整第二预设时长。
8.根据权利要求1至7中任一项所述的视频转码方法,其特征在于,所述时间戳包括解码时间戳和显示时间戳。
9.一种视频转码装置,其特征在于,包括:
获取模块,用于根据源流视频转码后的输出帧率,获取转码后所述源流视频每帧的播放时长;
筛选模块,用于根据所述播放时长和所述源流视频中各视频帧的时间戳信息,筛选出不满足转码时间单调递增的视频帧并丢弃;
转码模块,用于根据所述输出帧率对所述源流视频进行转码,将各所述关键帧的时间戳更新为各所述关键帧在所述源流视频中的初始时间戳,并根据各所述关键帧的时间戳更新其余各非关键帧的时间戳。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任意一项所述的视频转码方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的视频转码方法。
CN202111192912.XA 2021-10-13 2021-10-13 视频转码方法、装置、电子设备和存储介质 Pending CN113852824A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111192912.XA CN113852824A (zh) 2021-10-13 2021-10-13 视频转码方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111192912.XA CN113852824A (zh) 2021-10-13 2021-10-13 视频转码方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113852824A true CN113852824A (zh) 2021-12-28

Family

ID=78978168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111192912.XA Pending CN113852824A (zh) 2021-10-13 2021-10-13 视频转码方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113852824A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114390314A (zh) * 2021-12-30 2022-04-22 咪咕文化科技有限公司 可变帧率音视频处理方法、设备及存储介质
CN114979713A (zh) * 2022-06-06 2022-08-30 北京奇艺世纪科技有限公司 帧对齐方法、装置、计算机设备和存储介质
CN115134622A (zh) * 2022-06-29 2022-09-30 北京奇艺世纪科技有限公司 视频数据对齐方法、装置、设备及存储介质
CN115379248A (zh) * 2022-07-14 2022-11-22 百果园技术(新加坡)有限公司 一种视频源流替换方法、系统、设备及存储介质
CN116170609A (zh) * 2023-02-01 2023-05-26 广州虎牙科技有限公司 视频转码方法、装置、直播服务器、终端设备及存储介质
CN117478958A (zh) * 2023-09-19 2024-01-30 广州开得联软件技术有限公司 视频播放方法、装置、电子设备和存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114390314A (zh) * 2021-12-30 2022-04-22 咪咕文化科技有限公司 可变帧率音视频处理方法、设备及存储介质
CN114979713A (zh) * 2022-06-06 2022-08-30 北京奇艺世纪科技有限公司 帧对齐方法、装置、计算机设备和存储介质
CN115134622A (zh) * 2022-06-29 2022-09-30 北京奇艺世纪科技有限公司 视频数据对齐方法、装置、设备及存储介质
CN115134622B (zh) * 2022-06-29 2023-09-01 北京奇艺世纪科技有限公司 视频数据对齐方法、装置、设备及存储介质
CN115379248A (zh) * 2022-07-14 2022-11-22 百果园技术(新加坡)有限公司 一种视频源流替换方法、系统、设备及存储介质
CN115379248B (zh) * 2022-07-14 2023-12-12 百果园技术(新加坡)有限公司 一种视频源流替换方法、系统、设备及存储介质
CN116170609A (zh) * 2023-02-01 2023-05-26 广州虎牙科技有限公司 视频转码方法、装置、直播服务器、终端设备及存储介质
CN117478958A (zh) * 2023-09-19 2024-01-30 广州开得联软件技术有限公司 视频播放方法、装置、电子设备和存储介质
CN117478958B (zh) * 2023-09-19 2024-05-31 广州开得联软件技术有限公司 视频播放方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN113852824A (zh) 视频转码方法、装置、电子设备和存储介质
TWI788744B (zh) 動態縮減替換內容之播放以幫助對齊替換內容之結束與已替換內容之結束
KR101716071B1 (ko) 적응적 스트리밍 기법
TWI596933B (zh) 用於快速切換的編碼解碼器技術
CN106537923B (zh) 自适应视频流的技术
JP6054398B2 (ja) 適応httpストリーミングのための表示の改善された切り替えを提供する切替シグナリング方法
US9294531B2 (en) Signaling and processing content with variable bitrates for adaptive streaming
JP5964972B2 (ja) 複数のソースからのマルチメディアデータのストリーミング
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
US8943215B2 (en) Distributed smooth streaming utilizing dynamic manifests
CN110784718B (zh) 视频数据编码方法、装置、设备和存储介质
US20140109156A1 (en) Method, terminal, server and system for playing media file
US11438645B2 (en) Media information processing method, related device, and computer storage medium
CN111447455A (zh) 直播视频流回放处理方法、装置及计算设备
US20190174177A1 (en) Channel Change Method and Apparatus
CN101151901A (zh) 向数字数据流服务器发送命令的方法和用于实施该方法的装置
KR20170021837A (ko) 멀티미디어 데이터를 관리하는 방법 및 장치
CN108259998B (zh) 播放器及播放控制方法、装置、电子设备及播放系统
KR102566550B1 (ko) 복수의 커넥티드 장치 간 디지털 콘텐츠의 재생 동기화를 맞추는 방법 및 이를 이용한 장치
JP2016059037A (ja) 少なくとも2つの連続するセグメントに分離されたマルチメディアコンテンツを受信するための方法およびクライアント端末、ならびに対応するコンピュータプログラム製品およびコンピュータ可読媒体
JP4526294B2 (ja) ストリームデータ送信装置、受信装置、プログラムを記録した記録媒体、およびシステム
CN104581340B (zh) 客户端、流媒体数据接收方法和流媒体数据传输系统
CN115119009B (zh) 视频对齐方法、视频编码方法、装置及存储介质
CN110087116B (zh) 多码率直播视频流剪辑方法、装置、终端及存储介质
CN108476333A (zh) 媒体流的邻接流送

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination