CN116939246A - 一种视频转码方法、装置、计算机设备及存储介质 - Google Patents

一种视频转码方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116939246A
CN116939246A CN202310696287.5A CN202310696287A CN116939246A CN 116939246 A CN116939246 A CN 116939246A CN 202310696287 A CN202310696287 A CN 202310696287A CN 116939246 A CN116939246 A CN 116939246A
Authority
CN
China
Prior art keywords
video
transcoding
target
code stream
video slice
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
CN202310696287.5A
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202310696287.5A priority Critical patent/CN116939246A/zh
Publication of CN116939246A publication Critical patent/CN116939246A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/234345Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/440245Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例涉及一种视频转码方法、装置、计算机设备及存储介质,该方法包括:获取当前正在播放的直播码流;将所述直播码流划分为多个视频分片;生成每个视频分片对应的索引信息;根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;根据至少一个所述新视频分片生成点播码流。由此,可以实现快速将直播码流生成点播码流。采用直播转点播再转点播的处理模式,故可以将转码资源可以分散化,方便灵活调度,充分提高资源利用率,继而更灵活地调整码流生产策略。依据索引信息分别对视频分片转码,输入分片帧序号和输出分片帧序号严格对应,保障输出的所有码流的帧对齐,且保证了转码的实时性。

Description

一种视频转码方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及视频处理技术领域,尤其涉及一种视频转码方法、装置、计算机设备及存储介质。
背景技术
本发明应用于直播视频转码为点播视频的场景,具体将直播内容录制下来转化为多路可供点播的视频码流,供用户在直播结束后准实时观看。
图6为现有技术中直播转点播的原理示意图,现有的技术方案通常直接将直播转点播(live2vod),且收录和多路转码在同一个节点上进行,收录的同时进行多路转码,此时对服务器的CPU和内存等资源必须得到充足保障。由于资源限制,此方案无法动态加码流。如果针对同一个源,尝试在不同的节点上分别进行转码,无法做到所有码流的帧对齐。因此如何对直播码流进行动态快速转码成为现在亟待解决的问题。
发明内容
鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种视频转码方法、装置、计算机设备及存储介质。
第一方面,本发明实施例提供一种视频转码方法,包括:
获取当前正在播放的直播码流;
将所述直播码流划分为多个视频分片;
生成每个视频分片对应的索引信息;
根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
根据至少一个所述新视频分片生成点播码流。
在一个可能的实施方式中,所述将所述直播码流划分为多个视频分片,包括:
获取每个所述视频分片的目标长度和目标帧率;
根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;
按照所述目标帧数将所述直播码流划分为多个所述视频分片。
在一个可能的实施方式中,所述生成每个视频分片对应的索引信息,包括:
针对每个所述视频分片中的每一帧,生成对应的递增的帧序号,得到每个所述视频分片对应帧序号集合;
生成每个所述视频分片对应的存储地址;
针对每个所述视频分片,根据对应的所述存储地址和所述帧序号集合生成所述索引信息。
在一个可能的实施方式中,所述根据所述索引信息对至少一个目标视频分片进行转码操作,包括:
获取所述视频分片对应的转码模式;
根据所述转码模式确定至少一个所述目标视频分片对应的目标帧序号集合;
从所述索引信息中确定所述目标帧序号集合对应的目标存储地址;
根据所述目标存储地址获取所述目标视频分片;
将所述目标视频分片输入编码器进行转码。
在一个可能的实施方式中,所述至少一个所述目标视频分片通过以下方式确定,包括:
当所述转码模式为第一模式时,确定生成的全部视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第二模式时,接收对所述视频分片的第一操作;
根据所述第一操作从当前已经生成的全部视频分片中确定至少一个所述目标视频分片;
或,当所述转码模式为第三模式时,确定当前时刻开始生成的视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第四模式时,确定上一次转码操作结束后生成的视频分片为至少一个所述目标视频分片。
在一个可能的实施方式中,所述根据至少一个所述新视频分片生成点播码流,包括:
接收对所述新视频分片的第二操作;
根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;
根据所述目标新视频分片生成所述点播码流。
在一个可能的实施方式中,所述获取当前正在播放的直播码流之后,所述方法还包括:
将所述直播码流生成目标分辨率的预览码流;
将所述预览码流发送至目标终端,以通过所述目标终端展示所述预览码流。
第二方面,本发明实施例提供一种视频转码装置,包括:
获取模块,用于获取当前正在播放的直播码流;
划分模块,用于将所述直播码流划分为多个视频分片;
生成模块,用于生成每个视频分片对应的索引信息;
转码模块,用于根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
所述生成模块,还用于根据至少一个所述新视频分片生成点播码流。
第三方面,本发明实施例提供一种计算机设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的视频转码程序,以实现上述第一方面中任一项所述的视频转码方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中任一项所述的视频转码方法。
本发明实施例提供的视频转码方案,通过获取当前正在播放的直播码流;将所述直播码流划分为多个视频分片;生成每个视频分片对应的索引信息;根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;根据至少一个所述新视频分片生成点播码流。由此,可以实现快速将直播码流生成点播码流。将直播码流拆分成多个视频分片可以将转码资源可以分散化,方便灵活调度,充分提高资源利用率,继而更灵活地调整码流生产策略。针对索引信息分别转码保障输出的所有码流的帧对齐,且保证了转码的实时性。
附图说明
图1为本发明实施例提供的一种视频转码方法的流程示意图;
图2为本发明实施例提供的另一种视频转码方法的流程示意图;
图3为本发明实施例提供的再一种视频转码方法的流程示意图;
图4为本发明实施例提供的一种视频转码装置的结构示意图;
图5为本发明实施例提供的一种计算机设备的结构示意图;
图6为现有技术中直播转点播的原理示意图;
图7为本发明实施例提供的一种视频转码的原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种视频转码方法的流程示意图,如图1所示,该方法具体包括:
S11、获取当前正在播放的直播码流。
本发明实施例提供的视频转码方法,应用于计算机设备,该计算机设备可以包括:服务器、台式计算机等,本申请的应用场景可以包括但不限于:卫视和有线电视节目的直播转点播、视频应用程序中的直播转点播、春晚节目的直播转点播等,具体的,如图7所示,为本发明实施例提供的一种视频转码的原理示意图,通过将直播转点播再转点播(live2vod2vod)的方法,中间增加了一层。首先将直播码流实时生成高质量小视频分片,在转码节点对视频分片进行转码,以实现生成各种编码格式和分辨率的码流。
在本实施例中,计算机设备中预先设置有收录模块,用于获取并收录视频的码流,当目标视频正在直播时,通过收录模块收录目标视频对应的直播码流。
S12、将所述直播码流划分为多个视频分片。
在本实施例中,当收录到直播码流时,实时地对直播码流进行标准化处理后进行拆分,并输出标准化处理后的多个视频分片,具体的,收录模块将直播码流按照预先设置的编码格式以及固定的帧率(例如,25fps)进行划分,并输出多个编码格式一致、帧数一致且时长一致的多个高质量小分片,将输出的多个高质量小分片作为多个视频分片。
每个视频分片拥有独立的视频分片标识,比如可使用分片生成时刻的系统时间(以秒为单位)作为标识的一部分。类似1684811870.seg、1684811872.seg、1684811874.seg…,通过分片标识还可直接定位分片原始生成的时间,比如1684811870换算成物理时间就是2023-05-23 11:17:50。
S13、生成每个视频分片对应的索引信息。
在本实施例中,针对每个视频分片,生成视频分片中每一帧对应的唯一的帧序号,通常帧序号为按照直播码流的播放顺序递增的,将每个视频分片对应的帧序号生成的帧序号集合,并将输出的每个视频分片存储至预先设定的存储地址中。
进一步的,生成每个视频分片对应的索引文件作为索引信息并进行存储,索引文件中至少包括:每个视频分片对应的存储地址、帧序号集合和视频分片标识等,视频分片标识、存储地址和帧序号集合三者间一一对应。
S14、根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片。
在本实施例中,计算机设备中还设置有数据读取模块,用于读取视频分片。具体的,由于已经将直播码流划分成了多个视频分片,因此可以针对转码的需求选择任意的部分视频分片或已经生成的全部视频分片进行转码,当需要进行转码时接收开始转码的命令,该命令可以是用户选择或根据预先设定的转码要求生成,命令中包含视频分片对应的转码模式,以及需要进行转码的至少一个目标视频分片的标识,通过转码模式可以确定转码的首个目标视频分片,后续的分片通过索引文件依次获取。具体的,数据读取模块根据视频分片的标识查询索引信息,确定视频分片的标识对应的存储地址,从存储地址中获取至少一个目标视频分片。或,获取至少一个目标视频分片对应的帧序号范围,确定帧序号范围所属的目标帧序号集合,以及确定帧序号集合对应的视频分片的存储地址,从存储地址中获取至少一个目标视频分片。
进一步的,计算机设备中还包括转码模块,用于对视频分片进行转码,从上述确定的存储地址中获取需要转码的至少一个视频分片作为目标视频分片,依次将目标视频分片输入转码模块,转码模块通过编码器对目标视频分片进行转码操作,输出转码后的符合预设视频格式的新视频分片,新视频分片的帧数与目标视频分片的帧数一致,序号范围一致,输出新视频分片的顺序与目标视频分片的输入顺序一致。
S15、根据至少一个所述新视频分片生成点播码流。
在本实施例中,根据转码需求选择需要部分或全部的新视频分片进行拼接,按照生成新视频分片的顺序进行拼接,或按照每个新视频分片中包含的帧序号递增的顺序进行拼接,拼接后生成点播码流。
本发明实施例提供的视频转码方法,通过获取当前正在播放的直播码流;将所述直播码流划分为多个视频分片;生成每个视频分片对应的索引信息;根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;根据至少一个所述新视频分片生成点播码流。由此,可以实现快速将直播码流生成点播码流。将直播码流拆分成多个视频分片可以将转码资源可以分散化,方便灵活调度,充分提高资源利用率,继而更灵活地调整码流生产策略。针对索引信息分别转码保障输出的所有码流的帧对齐,且保证了转码的实时性。
图2为本发明实施例提供的另一种视频转码方法的流程示意图,如图2所示,该方法具体包括:
S21、获取当前正在播放的直播码流。
在本实施例中,与步骤S11的步骤类似,具体参见S11,为简洁描述在此不做赘述。
S22、获取每个所述视频分片的目标长度和目标帧率;根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;按照所述目标帧数将所述直播码流划分为多个所述视频分片。
在本实施例中,预先设置需要划分的每个视频分片的时长作为目标长度,以及设置每个视频分片中包含的帧数作为目标帧率,生成的每个视频分片的目标长度和目标帧率相同,将目标长度乘以目标帧率得到视频分片的目标帧数。具体的,获取直播码流输入收录模块,按照目标帧数将直播码流录制为多个可独立解码的视频分片,每个所述视频分片由至少一个GOP(“Group of Pictures”,即“图片组”)构成。
例如,预先设置每个视频分片的目标长度为2秒,目标帧数为25fps,由此可以确定目标帧数为50帧。
在一个可能的实施方式中,收录模块获取直播码流后,其中一路输出多个视频分片,另一路将直播码流生成目标分辨率的预览码流,预览码流和所述视频分片按照帧序号逐帧对应,目标分辨率为预先设置的,通常低于直播码流的分辨率;将预览码流发送至目标终端,以通过目标终端展示预览码流,目标终端可以是运营人员当前使用的终端,运营人员可以通过终端查看预览码流,并实时地调整需要输出的视频分片的目标帧数、目标时长、从直播码流中选择开始生成视频分片的位置、以及控制是否开始生成视频分片等,输出预览码流的操作和视频分片的生产是同时进行的。主要用于进行最终输出的点播码流的范围选择。
S23、针对每个视频分片中的每一帧,生成对应的递增的帧序号,得到每个视频分片对应帧序号集合;生成每个视频分片对应的存储地址;针对每个视频分片,根据对应的存储地址和帧序号集合生成索引信息。
在本实施例中,每生成一个视频分片后,针对当前生成的视频分片中的每一帧生成对应的帧序号,帧序号用于对每帧进行标识和区分,每个帧序号独立且唯一的对应一帧,生成的帧序号需要递增但不一定线性,以保证生成的帧序号的顺序与对应的视频分片的顺序一致,将每个视频分片对应的全部帧序号生成帧序号集合,帧序号集合表征视频分片对应的帧序号范围,生成的每个帧序号集合中的帧数是一致的。预先生成多个存储地址,将生成的视频分片存储至预先设置的存储地址中,每个视频分片都对应有唯一的存储地址。
进一步的,由于视频分片、存储地址和帧序号集合三者之间一一对应,将存储地址和帧序号集合生成每个视频分片对应的索引文件作为索引信息。通过查询索引信息可以确定视频分片对应的存储地址和帧序号集合。
S24、获取视频分片对应的转码模式;根据转码模式确定至少一个目标视频分片对应的目标帧序号集合;从索引信息中确定目标帧序号集合对应的目标存储地址;根据目标存储地址获取目标视频分片;将目标视频分片输入编码器进行转码。
在本实施例中,预先设置直播码流对应的多个转码模式,转码模式用于确定直播码流生成的多个视频分片中的目标视频分片,目标视频分片为需要进行转码操作的视频分片。
目标视频分片可以通过以下方式确定,当转码模式为第一模式时,确定生成的全部视频分片为至少一个目标视频分片。第一模式为Begin模式,Begin模式表明需要从生成的第一个视频分片开始转码,也即,将开始生成视频分片后生成的全部视频分片确定为目标视频分片。
或,当转码模式为第二模式时,接收对视频分片的第一操作;根据第一操作从当前已经生成的全部视频分片中确定至少一个目标视频分片。第二模式为Middle模式,Middle模式可以从已经收录的视频分片中指定一个或多个视频分片进行转码。第一操作可以使运营人员触发,运营人员在终端查看已经生成的视频分片,通过第一操作从已经生成的全部视频分片中选择目标视频分片。Middle模式的另一种使用方式是,可指定对某个区域内的目标视频分片进行重转,指定初始目标视频分片和结束目标视频分片,后续转码阶段会从索引文件中读取区间内的所有视频分片进行转码。
或,当转码模式为第三模式时,确定当前时刻开始生成的视频分片为至少一个目标视频分片。第三模式为End模式,End模式直接读取实时生成的最新的视频分片进行转码。也即,无需考虑历史生成的视频分片,仅确定当前时刻开始生成的视频分片为目标视频分片。
或,当转码模式为第四模式时,确定上一次转码操作结束后生成的视频分片为至少一个目标视频分片。第四模式为Resume模式,Resume模式从上次转码的下一个分片进行继续转码,也即,在每次转码结束后记录最后一个进行转码的视频分片的位置,当再次开始转码时获取上一次转码操作结束后还未进行转码的视频分片以及新生成的视频分片为目标视频分片。
进一步的,当根据转码模式确定目标视频分片后,由于索引信息中存在帧序号集合与视频分片和存储地址的对应关系,因此,从索引信息中确定每个目标视频分片对应的帧序号集合作为目标帧序号集合,以及从索引信息中确定目标帧序号集合对应的存储地址作为目标存储地址。从目标存储地址中获取目标视频分片后,按照每个目标视频分片对应的目标帧序号集合递增的顺序排列依次输入编码器进行转码,转码后输出新视频分片,转码后得到的新视频分片的帧数与对应的目标视频分片的帧数一致,该转码过程属于连续转码,每个帧序号集合的帧数都是一致的,也就是说目标视频分片输入到编码器,编码器输出满足每个帧序号集合的帧数(例如,50帧)之后输出对应的新视频分片,可以保证输入和输出的帧的对应关系。输入编码器进行转码的视频分片与对应的多路转码输出的视频分片,两者间拥有相同的帧序号范围,且帧严格一一对应。
在一个可能的实施方式中,在获取目标视频分片的过程中,首先需要读取索引信息,此处如果是集群,可以直接在子节点通过索引信息来获取目标存储地址,进行目标视频分片的读取。如果用于收录视频分片的节点和用于对视频分片进行转码的节点是物理独立的(例如,分别在两个物理机上),可通过下载的方式从收录节点获取对应的目标视频分片。
S25、接收对所述新视频分片的第二操作;根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;根据所述目标新视频分片生成所述点播码流。
在本实施例中,第二操作为运营人员通过终端触发的,用于筛选出需要的新视频分片,第二操作可以是选择帧序号的范围(例如,通过第二操作选择帧序号的范围在50-150的新视频分片),或向运营人员展示新视频分片后,运营人员点击选择新视频分片作为目标新视频分片,将选中的目标新视频分片按照帧序号递增的顺序进行拼接得到点播码流。
在一个可能的实施方式中,在转码前将目标视频分片展示给运营人员,运营人员可以选择需要转码的目标视频分片输入编码器进行转码。
作为一个例子,如图3所示为本发明实施例提供的再一种视频转码方法的流程示意图,本方法分为三个模块,1.收录模块,直播码流输入收录模块,输出分为三个部分:a.输出一路低分辨率码预览流。b.输出一路帧数标准化的符合预设编码格式的高质量的小分片作为视频分片,此处采用固定的帧率输出25fps,一个小分片一般为2秒,也就是50帧,每帧被赋予独立的帧序号,帧序号需要递增,可唯一的对应某一帧。c.输出每个视频分片对应的索引文件,该文件主要保存小分片的存储地址和帧序号集合等。2.数据读取模块,该模块首先需要获取要转码的视频分片的标识作为视频分片信息,获取途径可以是运营人员选择或输入或根据转码模式确定,提供了4种模式:Begin模式、Middle模式、End模式和Resume模式。Begin模式表明从收录的第一个视频分片开始转码,Middle模式可以指定中间的一个或多个视频分片进行转码,End模式直接读取实时最新的视频分片进行转码,Resume模式从上次转码的下一个视频分片进行续转。获取到视频分片信息后,就需要读取索引信息确定存储地址并获取视频分片。3.转码模块。读取视频分片后,转码模块通过编码器开始转码,得到转码后的新视频分片,然后从中选择一个或多个新视频分片,将其组合成点播码流。在单个转码节点,生成新视频分片的转码过程可采用两种模式,一种是单入单出,一种是单入多出。单入单出是指输入一个目标视频分片,输出一种编码格式的新视频分片;单入多出是指输入一个目标视频分片,资源允许的情况下,同时生成该目标视频分片对应的两路或多路码流,比如同时输出1080p和720p。最常用的方式是单入单出,因为其颗粒度更小,更有利于资源的调度。
本发明实施例提供的视频转码方法,通过获取当前正在播放的直播码流;获取每个所述视频分片的目标长度和目标帧率;根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;按照所述目标帧数将所述直播码流划分为多个所述视频分片;针对每个视频分片中的每一帧,生成对应的递增的帧序号,得到每个视频分片对应帧序号集合;生成每个视频分片对应的存储地址;针对每个视频分片,根据对应的存储地址和帧序号集合生成索引信息;获取视频分片对应的转码模式;根据转码模式确定至少一个目标视频分片对应的目标帧序号集合;从索引信息中确定目标帧序号集合对应的目标存储地址;根据目标存储地址获取目标视频分片;将目标视频分片输入编码器进行转码;接收对所述新视频分片的第二操作;根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;根据所述目标新视频分片生成所述点播码流。由此,可以实现收录和转码分离,直播转点播调整为直播转点播再转点播,转码资源可以分散化,可以被外部灵活调度,充分利用提高资源利用率;继而更灵活地调整码流生产策略。视频分片、索引和帧序号的模式保障输出的所有码流的帧对齐,收录和转码是实时操作的,也就意味着,直播结束之后,几秒之内就可看到相关的点播节目,提高了生成点播的效率。
图4为本发明实施例提供的一种视频转码装置的结构示意图,如图4所示,所述装置具体包括:
获取模块41,用于获取当前正在播放的直播码流;
划分模块42,用于将所述直播码流划分为多个视频分片;
生成模块43,用于生成每个视频分片对应的索引信息;
转码模块44,用于根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
所述生成模块43,还用于根据至少一个所述新视频分片生成点播码流。
在一个可能的实施方式中,所述获取模块,具体用于获取每个所述视频分片的目标长度和目标帧率;
确定模块45,用于根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;
所述划分模块,具体用于按照所述目标帧数将所述直播码流划分为多个所述视频分片。
在一个可能的实施方式中,所述生成模块,具体用于针对每个所述视频分片中的每一帧,生成对应的递增的帧序号,得到每个所述视频分片对应帧序号集合;
生成每个所述视频分片对应的存储地址;
针对每个所述视频分片,根据对应的所述存储地址和所述帧序号集合生成所述索引信息。
在一个可能的实施方式中,所述获取模块,具体用于获取所述视频分片对应的转码模式;
所述确定模块,具体用于根据所述转码模式确定至少一个所述目标视频分片对应的目标帧序号集合;
从所述索引信息中确定所述目标帧序号集合对应的目标存储地址;
所述获取模块,具体用于根据所述目标存储地址获取所述目标视频分片;
所述转码模块,具体用于将所述目标视频分片输入编码器进行转码。
在一个可能的实施方式中,所述确定模块,具体用于当所述转码模式为第一模式时,确定生成的全部视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第二模式时,接收对所述视频分片的第一操作;
根据所述第一操作从当前已经生成的全部视频分片中确定至少一个所述目标视频分片;
或,当所述转码模式为第三模式时,确定当前时刻开始生成的视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第四模式时,确定上一次转码操作结束后生成的视频分片为至少一个所述目标视频分片。
在一个可能的实施方式中,所述获取模块,具体用于接收对所述新视频分片的第二操作;
所述确定模块,具体用于根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;
所述生成模块,具体用于根据所述目标新视频分片生成所述点播码流。
在一个可能的实施方式中,所述生成模块,还用于将所述直播码流生成目标分辨率的预览码流;
发送模块46,用于将所述预览码流发送至目标终端,以通过所述目标终端展示所述预览码流。
本实施例提供的视频转码装置可以是如图4中所示的装置,可执行如图1-3中方法的所有步骤,进而实现图1-3中方法的技术效果,具体请参照图1-3相关描述,为简洁描述,在此不作赘述。
图5为本发明实施例提供的一种计算机设备的结构示意图,图5所示的计算机设备500包括:至少一个处理器501、存储器502、至少一个网络接口504和其他用户接口503。计算机设备500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。
其中,用户接口503可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统5021和应用程序5022。
其中,操作系统5021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5022中。
在本发明实施例中,通过调用存储器502存储的程序或指令,具体的,可以是应用程序5022中存储的程序或指令,处理器501用于执行各方法实施例所提供的方法步骤,例如包括:
获取当前正在播放的直播码流;
将所述直播码流划分为多个视频分片;
生成每个视频分片对应的索引信息;
根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
根据至少一个所述新视频分片生成点播码流。
在一个可能的实施方式中,获取每个所述视频分片的目标长度和目标帧率;
根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;
按照所述目标帧数将所述直播码流划分为多个所述视频分片。
在一个可能的实施方式中,针对每个所述视频分片中的每一帧,生成对应的递增的帧序号,得到每个所述视频分片对应帧序号集合;
生成每个所述视频分片对应的存储地址;
针对每个所述视频分片,根据对应的所述存储地址和所述帧序号集合生成所述索引信息。
在一个可能的实施方式中,获取所述视频分片对应的转码模式;
根据所述转码模式确定至少一个所述目标视频分片对应的目标帧序号集合;
从所述索引信息中确定所述目标帧序号集合对应的目标存储地址;
根据所述目标存储地址获取所述目标视频分片;
将所述目标视频分片输入编码器进行转码。
在一个可能的实施方式中,当所述转码模式为第一模式时,确定生成的全部视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第二模式时,接收对所述视频分片的第一操作;
根据所述第一操作从当前已经生成的全部视频分片中确定至少一个所述目标视频分片;
或,当所述转码模式为第三模式时,确定当前时刻开始生成的视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第四模式时,确定上一次转码操作结束后生成的视频分片为至少一个所述目标视频分片。
在一个可能的实施方式中,接收对所述新视频分片的第二操作;
根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;
根据所述目标新视频分片生成所述点播码流。
在一个可能的实施方式中,将所述直播码流生成目标分辨率的预览码流;
将所述预览码流发送至目标终端,以通过所述目标终端展示所述预览码流。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的计算机设备可以是如图5中所示的计算机设备,可执行如图1-3中视频转码方法的所有步骤,进而实现图1-3所示视频转码方法的技术效果,具体请参照图1-3相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在设备侧执行的视频转码方法。
所述处理器用于执行存储器中存储的视频转码程序,以实现以下在设备侧执行的视频转码方法的步骤:
获取当前正在播放的直播码流;
将所述直播码流划分为多个视频分片;
生成每个视频分片对应的索引信息;
根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
根据至少一个所述新视频分片生成点播码流。
在一个可能的实施方式中,获取每个所述视频分片的目标长度和目标帧率;
根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;
按照所述目标帧数将所述直播码流划分为多个所述视频分片。
在一个可能的实施方式中,针对每个所述视频分片中的每一帧,生成对应的递增的帧序号,得到每个所述视频分片对应帧序号集合;
生成每个所述视频分片对应的存储地址;
针对每个所述视频分片,根据对应的所述存储地址和所述帧序号集合生成所述索引信息。
在一个可能的实施方式中,获取所述视频分片对应的转码模式;
根据所述转码模式确定至少一个所述目标视频分片对应的目标帧序号集合;
从所述索引信息中确定所述目标帧序号集合对应的目标存储地址;
根据所述目标存储地址获取所述目标视频分片;
将所述目标视频分片输入编码器进行转码。
在一个可能的实施方式中,当所述转码模式为第一模式时,确定生成的全部视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第二模式时,接收对所述视频分片的第一操作;
根据所述第一操作从当前已经生成的全部视频分片中确定至少一个所述目标视频分片;
或,当所述转码模式为第三模式时,确定当前时刻开始生成的视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第四模式时,确定上一次转码操作结束后生成的视频分片为至少一个所述目标视频分片。
在一个可能的实施方式中,接收对所述新视频分片的第二操作;
根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;
根据所述目标新视频分片生成所述点播码流。
在一个可能的实施方式中,将所述直播码流生成目标分辨率的预览码流;
将所述预览码流发送至目标终端,以通过所述目标终端展示所述预览码流。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种视频转码方法,其特征在于,包括:
获取当前正在播放的直播码流;
将所述直播码流划分为多个视频分片;
生成每个视频分片对应的索引信息;
根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
根据至少一个所述新视频分片生成点播码流。
2.根据权利要求1所述的方法,其特征在于,所述将所述直播码流划分为多个视频分片,包括:
获取每个所述视频分片的目标长度和目标帧率;
根据所述目标长度和所述目标帧率确定所述视频分片的目标帧数;
按照所述目标帧数将所述直播码流划分为多个所述视频分片。
3.根据权利要求1所述的方法,其特征在于,所述生成每个视频分片对应的索引信息,包括:
针对每个所述视频分片中的每一帧,生成对应的递增的帧序号,得到每个所述视频分片对应帧序号集合;
生成每个所述视频分片对应的存储地址;
针对每个所述视频分片,根据对应的所述存储地址和所述帧序号集合生成所述索引信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述索引信息对至少一个目标视频分片进行转码操作,包括:
获取所述视频分片对应的转码模式;
根据所述转码模式确定至少一个所述目标视频分片对应的目标帧序号集合;
从所述索引信息中确定所述目标帧序号集合对应的目标存储地址;
根据所述目标存储地址获取所述目标视频分片;
将所述目标视频分片输入编码器进行转码。
5.根据权利要求4所述的方法,其特征在于,所述至少一个所述目标视频分片通过以下方式确定,包括:
当所述转码模式为第一模式时,确定生成的全部视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第二模式时,接收对所述视频分片的第一操作;
根据所述第一操作从当前已经生成的全部视频分片中确定至少一个所述目标视频分片;
或,当所述转码模式为第三模式时,确定当前时刻开始生成的视频分片为至少一个所述目标视频分片;
或,当所述转码模式为第四模式时,确定上一次转码操作结束后生成的视频分片为至少一个所述目标视频分片。
6.根据权利要求1所述的方法,其特征在于,所述根据至少一个所述新视频分片生成点播码流,包括:
接收对所述新视频分片的第二操作;
根据所述第二操作从至少一个所述新视频分片中确定目标新视频分片;
根据所述目标新视频分片生成所述点播码流。
7.根据权利要求1所述的方法,其特征在于,所述获取当前正在播放的直播码流之后,所述方法还包括:
将所述直播码流生成目标分辨率的预览码流;
将所述预览码流发送至目标终端,以通过所述目标终端展示所述预览码流。
8.一种视频转码装置,其特征在于,包括:
获取模块,用于获取当前正在播放的直播码流;
划分模块,用于将所述直播码流划分为多个视频分片;
生成模块,用于生成每个视频分片对应的索引信息;
转码模块,用于根据所述索引信息对至少一个目标视频分片进行转码操作,得到转码后的至少一个新视频分片;
所述生成模块,还用于根据至少一个所述新视频分片生成点播码流。
9.一种计算机设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的视频转码程序,以实现权利要求1~7中任一项所述的视频转码方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的视频转码方法。
CN202310696287.5A 2023-06-12 2023-06-12 一种视频转码方法、装置、计算机设备及存储介质 Pending CN116939246A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310696287.5A CN116939246A (zh) 2023-06-12 2023-06-12 一种视频转码方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310696287.5A CN116939246A (zh) 2023-06-12 2023-06-12 一种视频转码方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN116939246A true CN116939246A (zh) 2023-10-24

Family

ID=88381774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310696287.5A Pending CN116939246A (zh) 2023-06-12 2023-06-12 一种视频转码方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116939246A (zh)

Similar Documents

Publication Publication Date Title
KR101927016B1 (ko) 멀티미디어 파일 라이브 방송 방법, 시스템 및 서버
US11785289B2 (en) Receiving device, transmitting device, and data processing method
RU2652099C2 (ru) Устройство передачи, способ передачи, устройство приема и способ приема
KR101467430B1 (ko) 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
US20130297466A1 (en) Transmission of reconstruction data in a tiered signal quality hierarchy
CN102771134B (zh) 用于支持播放内容的方法及装置
CN108605161B (zh) 减少接收、处理或切换内容时的延迟的方法和装置
KR20100127240A (ko) 상호작용형 컨텐츠 식별을 위하여 비디오에 트리거를 사용하는 방법
KR101990988B1 (ko) 디지털 콘텐츠 버전 전환 방법 및 그 대응 장치
CN110677727A (zh) 音视频播放方法、装置、电子设备及存储介质
US11758200B2 (en) System and method for converting adaptive stream to downloadable media
CN111182322B (zh) 一种导播控制方法、装置、电子设备和存储介质
CN110784750A (zh) 视频播放方法、装置及计算机设备
CN102378008A (zh) 一种减少播放等待时间的视频编码方法、装置及系统
KR20180058219A (ko) 송신 장치, 수신 장치, 및 데이터 처리 방법
KR20180064391A (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
US9565454B2 (en) Picture referencing control for video decoding using a graphics processor
CN116939246A (zh) 一种视频转码方法、装置、计算机设备及存储介质
US20190141352A1 (en) Tile-based 360 vr video encoding method and tile-based 360 vr video decoding method
CN101605243A (zh) 节目提供的方法、媒体设备和用户侧设备
CN114339265A (zh) 视频处理、控制、播放方法及设备、介质
Wahyu et al. Design and realization of an early warning system for natural disaster on digital television in Indonesia
US11303940B2 (en) Transmission apparatus, transmission method, and non-transitory computer-readable storage medium
US20240086451A1 (en) Information processing apparatus, reception apparatus, information processing method, and storage medium
CN114501166A (zh) Dash点播快进快退方法及系统

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