CN116916094A - 一种双视频混流播放方法、播放器及存储介质 - Google Patents
一种双视频混流播放方法、播放器及存储介质 Download PDFInfo
- Publication number
- CN116916094A CN116916094A CN202311168266.2A CN202311168266A CN116916094A CN 116916094 A CN116916094 A CN 116916094A CN 202311168266 A CN202311168266 A CN 202311168266A CN 116916094 A CN116916094 A CN 116916094A
- Authority
- CN
- China
- Prior art keywords
- mixed
- video
- processing
- playing
- stream
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims abstract description 5
- 230000009977 dual effect Effects 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000005111 flow chemistry technique Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 241001362551 Samba Species 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44016—Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本申请公开了一种双视频混流播放方法、播放器及存储介质,属于视频处理领域,包括:S110、在预播放界面添加目标文件;S120、解析目标文件得到视频轨道、音频轨道以及字幕轨道,选择视频轨道以及音频轨道和字幕轨道作为混流内容;S130、依次将混流内容分隔为若干处理段;S140、处理段依次分配至若干混流子线程进行处理,每一段处理段完成后将资源占用情况发送至调度线程;S150、调度线程根据资源占用情况重新分隔处理段,并再次执行S140进行播放并写入磁盘存储中;播放器包括预播放界面、调度线程、视频播放界面以及若干混流子线程;该存储介质存储有完成上述方法的计算机程序。保证多视频混流过程中能够流畅观看视频。
Description
技术领域
本申请属于视频处理领域,特别涉及一种双视频混流播放方法、播放器及存储介质。
背景技术
在视频播放场景中,我们经常需要将多个视频画面混合成一个视频画面的工作,常见的场景如:将一个视频中的音频添加至另一个视频的播放画面中,或者将一个视频的字幕添加至另一个视频的播放画面中。
现有技术中,针对上述应用场景,如申请号为CN201310690684.8的字幕调节方法及装置,通过获取音视频文件的音频信息和外挂字幕文件,对音频信息中的对白进行解析,生成对白时间表,对外挂字幕文件的内容进行解析,生成字幕时间表;将对白时间表和字幕时间表进行匹配,根据匹配结果确定音频信息与字幕文件之间的字幕时间差,并根据字幕时间差对字幕文件进行调节,输出调节后的字幕文件。但是方法针对单一视频文件的播放进行处理且仅针对字幕的加载与时间匹配,缺少对音频轨道的处理方法。
如申请号CN202010677344.1的一种增加字幕和/或音频的方法及系统,媒资服务器接收目标视频的标识和新语言文件,并将新语言文件转换为新语言介质文件;媒资服务器根据目标视频的标识找到第一索引文件,根据新语言介质文件在媒资服务器中的存储地址得到第二索引文件;媒资服务器将新语言介质文件和第二索引文件发送至内容分发服务器;内容分发服务器将第二索引文件中新语言介质文件在媒资服务器中的存储地址替换为在内容分发服务器中的存储地址,得到第三索引文件;内容分发服务器生成目标视频的第一URL。该方法实现了增加目标视频的新语言字幕或新语言音频时只需将目标视频的新语言字幕或新语言音频转码后上架,极大降低了成本,提升了运营效率。但是该方法需要相应的服务器进行数据的处理,且需要单独的音频或字幕文件作为被添加对象,使用局限性较大。
上述现有技术中的视频播放软件,大多只能支持单一视频文件播放,少数可以支持外挂音频轨道文件播放。如果用户想要播放的视频和音频内容分别来自两个不同的视频文件,则没有很好的解决方案,只能先使用视频编辑工具分离想要的音频轨道,再配合想要的视频文件进行播放。若视频内容和音频内容存在不同步的问题,则需要更复杂的操作,非常不方便。
因此,需要一种新的视频混流播放的技术方案,能够解决上述问题。
发明内容
为了克服现有技术的不足,本申请提供了一种双视频混流播放方法、播放器及存储介质,在预播放界面选择不同目标文件的视频轨道、音频轨道以及字幕轨道,并进行偏移量设置后形成播放方案,调度线程以及混流子线程能够根据播放方案进行混流并输出,从而达到通过简单的设置来欣赏更好的画面及聆听更舒服的音频的目的。
本申请所要解决的技术问题,可以通过以下方案实现:
根据本申请的第一方面,提供一种双视频混流播放方法,包括如下步骤:
步骤1:在预播放界面添加至少两个目标文件;
步骤2:解析目标文件的mediainfo信息得到视频轨道、音频轨道以及字幕轨道,并显示在所述预播放界面,选择一个视频轨道以及若干音频轨道和字幕轨道作为混流内容;
步骤3:根据所选的混流内容进行同步对齐设置以及播放起始点设置,从所述播放起始点开始,依次将所述混流内容分隔为若干处理段;
步骤4:所述处理段依次分配至若干混流子线程进行处理,将处理后的处理段存入缓冲区,每一段处理段完成后所述混流子线程将处理过程中的资源占用情况发送至调度线程;
步骤5:调度线程根据所述资源占用情况,重新分隔所述处理段长度,并再次进行步骤4,直至完成所有混流内容的处理;
步骤6:根据设置进行播放并将缓冲区中的内容写入磁盘存储中。
优选地,在步骤3中,同步对齐步骤具体为:以所述视频轨道的时间轴作为参考轴,调整音频轨道以及字幕轨道的时间偏移量,使音频轨道和字幕轨道与视频轨道同步对齐;所述播放起始点为在所述参考轴上点选的任意时间点。
优选地,点选所述参考轴上任意时间点时,在预播放界面显示被点选的时间点所对应的帧画面,并显示与之对应的字幕轨道中第一条轨道的字幕内容,并在设置字幕轨道偏移量时实时显示字幕内容。
优选地,所述处理段从所述播放起始点开始其时长逐渐增大,最前部的混流子线程处理完成当前处理段后由调度线程分配最前部的未被处理的处理段进行处理;处理完成的处理段在缓冲区中按顺序形成播放列表,并根据需要进行播放。
优选地,所述资源占用情况至少包括:文件大小、耗时、CPU占用以及GPU占用;所述调度线程根据处理当前处理段的耗时,计算每秒钟所处理的混流内容时长;调度线程根据当前播放进度以及当前处理速度,确定处理段的最大时长,并根据最大时长重新分隔所述处理段长度。
优选地,当所述CPU占用或GPU占用超过阈值,且混流子线程的处理速度小于阈值时,减小混流子线程的数量直至处理速度大于阈值或混流子线程数量为1;
当混流子线程数量为1且处理速度小于阈值时,则退出视频播放并弹出警示信息;
当处理速度大于阈值时,则进入边播边混流模式,即在混流子线程处理过程中播放缓冲区中的内容。
优选地,在边播边混流模式下执行快进或快退指令时,暂停视频播放并在播放列表查询定位点,如果定位点位于播放列表中且缓存区中包含了自定位点开始至少10秒的内容,则跳转至该定位点进行播放,调度线程将定位点之后第一个处理段分配至最前端的混流子线程,最前端的混流子线程停止当前处理工作后开始处理最新分配的处理段;
若缓存区中自定位点开始的内容少于10秒,则视频播放暂停直至缓存区中的内容大于10秒后再进行播放;
若定位点不在缓存区中,则调度线程将定位点所在的处理段分配至最前端的混流子线程,将该处理段之后的处理段依次分配至剩余的其他混流子线程,所有混流子线程停止当前处理工作并开始处理最新分配的处理段。
优选地,在边播边混流模式下执行音频轨道或字幕轨道的偏移量设置时,暂停视频播放并保留当前帧画面,清空缓存区后,按照当前播放时间点前2秒重新开始边播边混流模式进行播放。
根据本申请的第二方面,提供一种采用上述双视频混流播放方法的播放器,包括预播放界面、调度线程、视频播放界面以及若干混流子线程,其中:
所述预播放界面用于展示设置界面,并进行进行同步对齐设置以及播放起始点设置;
所述视频播放界面用于进行缓存区内容的解码、渲染以及播放输出;
所述调度线程用于控制混流进程并对若干混流子线程进行调度;
所述混流子线程用于对混流内容进行混流处理。
根据本申请的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述双视频混流播放方法。
根据本申请的一个实施例,采用本双视频混流播放方法的有益效果在于,能够对两个视频文件加多字幕文件进行混流处理,并实现多文件多轨道的灵活选择以及播放;本申请本地存储或samba/webdav等的共享存储设备中的视频文件,不需要相应的服务端实现,且不需要专门制备单独的音频或字幕文件,通过简单的设置即可流畅的欣赏更好的画面及聆听更舒服的音频。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中一种双视频混流播放方法的流程图;
图2为本申请一实施例中的预播放界面示意图;
图3为本申请一实施例中混流子线程与调度线程的工作关系示意图;
图4为本申请一实施例中混流子线程的工作流程示意图;
图5为本申请一实施例中的播放器的结构框图。
具体实施方式
实施例:
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请一实施例中的双视频混流播放方法,包括如下步骤:
S110:在预播放界面添加至少两个目标文件;
该步骤中的目标文件可以包括视频文件、音频文件以及外挂字幕文件,其中视频文件至多包括两个,目标文件为本地存储的或者samba/webdav等的共享存储设备中各种格式的视频文件。
S120:解析目标文件的mediainfo信息得到视频轨道、音频轨道以及字幕轨道,并显示在预播放界面,选择一个视频轨道以及若干音频轨道和字幕轨道作为混流内容;
在本步骤中,选择目标轨道时,其中视频轨道最多可选一条,音频轨道可选多条(多选时需指定一条默认轨道),字幕轨道和音频轨道规则一样。
如图2所示的预播放界面,对每一个视频文件解析后得出的视频轨道、音频轨道以及字幕轨道均展示在界面上,可以通过点选的方式选择所需要混流的文件。之后将点选的视频等展示在时间轴下方的展示区域,当点选时间轴上的某一时间点后,展示区域显示该时间点前后两帧的画面。并在右上角的预览区域展示混流后的效果。
在每一个目标文件解析后的得出的轨道区域中均设置有偏移量选项,以设置所选择的混流内容的偏移量,方便对混流内容进行对齐调整。
S130:根据所选的混流内容进行同步对齐设置以及播放起始点设置,从播放起始点开始,依次将混流内容分隔为若干处理段;
在该步骤中,同步对齐步骤具体为:以视频轨道的时间轴作为参考轴,调整音频轨道以及字幕轨道的时间偏移量,使音频轨道和字幕轨道与视频轨道同步对齐;播放起始点为在参考轴上点选的任意时间点;
点选参考轴上任意时间点时,在预播放界面显示被点选的时间点所对应的帧画面,并显示与之对应的字幕轨道中第一条轨道(自上而下)的字幕内容,并在设置字幕轨道偏移量时实时显示字幕内容。
修改字幕偏移量后,预览区域会显示相应的调整后结果,可以通过观察法初步判断所有轨道的同步情况。
也可以分别控制两个视频预览窗口的播放/暂停状态,此时播放器会自动计算两个窗口的播放时间差(与偏移量相同单位)并显示在第一个预览窗口中(自上而下)。如图2所示,其下方的视频1和视频2中分别展示预览窗口,以方便用户能够更加直观的观看两个视频的时间差以及偏移量的正负值,方便有针对性的进行修改,提高便捷性。
分割为若干处理段方便分配至不同的混流子线程进行同步并行处理,以提高混流的处理速度。分隔时可以从头开始截取混流内容,首先截取的处理段数量与混流子线程一致,待某一混流子线程处理完毕后再分隔一个处理段分配至该混流子线程,即混流子线程处理完毕后再生成处理段,以能够实时调整处理段的分隔方案,达到硬件资源利用的最大化。
S140:处理段依次分配至若干混流子线程进行处理,将处理后的处理段存入缓冲区,每一段处理段完成后混流子线程将处理过程中的资源占用情况发送至调度线程;
在该步骤中,处理段从播放起始点开始其时长逐渐增大,最前部的混流子线程处理完成当前处理段后由调度线程分配最前部的未被处理的处理段进行处理,也就是说每个混流子线程每轮处理的视频时长逐步扩大,直到视频结尾;处理完成的处理段在缓冲区中按顺序形成播放列表,并根据需要进行播放。
具体的,本实施例中,在接收到开始指令时,例如点击“全屏播放”按钮时或者启动混流按钮时,播放器启动调度线程及3个混流子线程,混流子线程根据所选的轨道设置、偏移量设置、播放起始点等信息依次开始进行混流。
如图3和图4所示,将视频内容的前10秒划分为第一个处理段,11-30秒时间段划分为第二个处理段,31-60秒时间段划分为第三个处理段。三个混流子线程同步处理三个处理段,混流子线程1混流最开始的10秒视频内容,存入共享内存缓冲区;混流子线程2处理11-30秒时间段的20秒视频内容存入共享内存缓冲区;混流子线程3处理31-60秒时间段的30秒视频内容,存入共享内存缓冲区。
通过以上的方法,混流子线程1能够最先处理完第一个处理段的10秒视频内容并存入缓冲区,从而保证使用者能够在极短的时间内能够观看到已混流完成的视频,并保证观看的流畅度。
在每次处理完要给处理段之后,混流子线程将调度线程发送处理刚完成处理段的文件大小、耗时、CPU占用以及GPU占用等数据。
步骤S150:调度线程根据资源占用情况,重新分隔处理段长度,并再次进行步骤S140,直至完成所有混流内容的处理;
在该步骤中,调度线程根据处理当前处理段的耗时,计算每秒钟所处理的混流内容时长;调度线程根据当前播放进度以及当前处理速度,确定处理段的最大时长,并根据最大时长重新分隔处理段长度,从而下一轮可以为3个混流子线程分配的最大处理时长等,并进行任务调度处理。
例如上一个处理段是10秒视频内容,处理时间是4秒,则后面的一个处理段设置为10秒视频内容,再后面的一个处理段设置为20秒的视频内容,这样可以保障视频连续播放,因为此时已经处理好且未播放的视频内容有10秒,观看完该10秒的视频内容时,能够处理25秒的视频内容,因此处理20秒视频内容理论上仅需8秒。待20秒处理段的视频内容处理完成后,可以再根据当前的观看进度(例如正常观看而无快进)以及硬件资源的使用情况(如没有打开其他软件分摊硬件资源等),进行适当的增加处理段的长度,例如增加5秒或10秒;
如果上一处理段是10秒的视频内容,而处理时间是8秒,也就是说处理完该处理段的时间后,用户开始观看,为保证下一处理段的视频能够无需等待无卡顿的观看,则处理时间不能够大于12秒,则12秒内能够处理完成的处理段即为最大的处理段;如果下一处理段增加时长,例如20秒,则处理时间理论为16秒,用户在观看完上一段视频内容后,需要等待4秒才可以继续观看,极大的影响了用户体验。
在硬件资源过于紧张时,即当CPU占用或GPU占用超过阈值,且混流子线程的处理速度小于阈值时(例如处理速度低于每秒钟处理1秒钟视频数据),在此情况下混流的速度会低于视频播放的速度,从而造成观看视频时的卡顿,为了保证观看时的流畅度,需要减少混流子线程的数量,提高对单个混流子线程提供的硬件资源,直至使单个混流子线程在下一轮的处理速度大于视频播放的速度,或混流子线程数量减少为1;
当混流子线程数量为1且处理速度小于阈值时,则退出视频播放并弹出警示信息;提示用户先进行文件混流,再播放,此时可以点击“生成新视频”按钮,播放器接受命令后不播放直接进入文件混流模式,在预先设置的路径下存储新生成的视频文件;
当处理速度大于阈值时,则进入边播边混流模式,即在混流子线程处理过程中播放缓冲区中的内容,可以减少用户的等待时间。
在边播边混流模式下执行快进或快退指令时,暂停视频播放并保留当前帧画面,在缓存区的播放列表查询定位点,如果定位点位于播放列表中且缓存区中包含了自定位点开始至少10秒的内容,则跳转至该定位点正常进行播放;调度线程将定位点之后第一个处理段分配至最前端的混流子线程,并依次类推,最前端的混流子线程停止当前处理工作后开始处理最新分配的处理段;当处理完定位点之后的所有混流内容后,再调转至定位点之前未处理的内容处继续完成混流任务;
若缓存区中自定位点开始的内容少于10秒,则视频播放暂停直至缓存区中的内容大于10秒后再进行播放;
若定位点不在缓存区中,则调度线程将定位点所在的处理段分配至最前端的混流子线程,将该处理段之后的处理段依次分配至剩余的其他混流子线程,所有混流子线程停止当前处理工作并开始处理最新分配的处理段。
在边播边混流模式下执行音频轨道或字幕轨道的偏移量设置时,暂停视频播放并保留当前帧画面,清空缓存区后,按照当前播放时间点前2秒重新开始边播边混流模式进行播放。当处理完当前播放时间点之后的所有混流内容后,再调转至起始点开始处理未处理的内容继续完成混流任务。
在边播边混流模式下,只能选择切换到预播设置时已选中的音轨或字幕,之前未选中的轨道,在播放时无法选择。
在边播边混流模式下,执行暂停播放操作,后台调度线程和混流子线程仍然继续工作不暂停混流。
步骤S160:根据设置进行播放并将缓冲区中的内容写入磁盘存储中。
在该步骤中,可以设置边播边存功能。设置边播边存后,调度线程会在混流子线程完成全部视频时长50%处理时,启动文件保存子线程,将内存缓冲区的内容写入到磁盘存储中。并在这个过程中根据资源占用情况调整混流子线程和文件保存子线程的负载。播放器将在播放结束时弹窗提示文件保存的路径及完成情况。
在没有设置边播边存功能的情况下,播放器将自动保存最后的播放设置方案,将该播放方案以独立的文件形式保存在主视频流文件相同目录下相同文件名,不同扩展名。用户之后可以通过直接打开该播放方案的方式开始视频播放。
播放器可以在播放方案文件中保存最后一次播放的时间进度,以此来实现断点续播,若文件已经播放结束,则下次播放从头开始。
如图5所示,根据本申请一实施例中采用上述双视频混流播放方法的播放器,包括预播放界面11、调度线程12、视频播放界面14以及若干混流子线程13,同时会用到硬件设备的文件存储设备及内存设备。其中:
预播放界面11用于展示设置界面,并进行进行同步对齐设置以及播放起始点设置;
视频播放界面14用于进行缓存区15内容的解码、渲染以及播放输出;
调度线程12用于控制混流进程并对若干混流子线程13进行调度;
混流子线程13用于对混流内容进行混流处理。
在使用时,在预播放界面11从文件存储设备中选择目标视频文件后,再进一步选择目标轨道,并进行适当的时间偏移设置,形成播放方案。确认播放时,将播放方案提交给后台调度线程12,后台调度线程12根据播放方案有选择性的从文件存储设备中读取源文件的目标内容,交由混流子线程13进行混流处理,混流后存入缓存区15。视频播放界面14检测到共享内容中的数据增加,读取相应数据并进行解码、渲染、输出播放。
根据本申请的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述双视频混流播放方法。
根据本申请的一个实施例,采用本双视频混流播放方法的有益效果在于,能够对两个视频文件加多字幕文件进行混流处理,并实现多文件多轨道的灵活选择以及播放;本申请本地存储或samba/webdav等的共享存储设备中的视频文件,不需要相应的服务端实现,且不需要专门制备单独的音频或字幕文件,通过简单的设置即可流畅的欣赏更好的画面及聆听更舒服的音频。
应该指出,上述详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语均具有与本申请所属技术领域的普通技术人员的通常理解所相同的含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本申请的实施方式能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位,如旋转90度或处于其他方位,并且对这里所使用的空间相对描述作出相应解释。
在上面详细的说明中,参考了附图,附图形成本文的一部分。在附图中,类似的符号典型地确定类似的部件,除非上下文以其他方式指明。在详细的说明书、附图及权利要求书中所描述的图示说明的实施方案不意味是限制性的。在不脱离本文所呈现的主题的精神或范围下,其他实施方案可以被使用,并且可以作其他改变。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种双视频混流播放方法,其特征在于,包括如下步骤:
在预播放界面添加至少两个目标文件;
解析目标文件的mediainfo信息得到视频轨道、音频轨道以及字幕轨道,并显示在所述预播放界面,选择一个视频轨道以及若干音频轨道和字幕轨道作为混流内容;
根据所选的混流内容进行同步对齐设置以及播放起始点设置,从所述播放起始点开始,依次将所述混流内容分隔为若干处理段;
所述处理段依次分配至若干混流子线程进行处理,将处理后的处理段存入缓冲区,每一段处理段完成后所述混流子线程将处理过程中的资源占用情况发送至调度线程;
调度线程根据所述资源占用情况,重新分隔所述处理段长度,并再次进行所述处理段依次分配至若干混流子线程进行处理,将处理后的处理段存入缓冲区,每一段处理段完成后所述混流子线程将处理过程中的资源占用情况发送至调度线程的步骤,直至完成所有混流内容的处理;
根据设置进行播放并将缓冲区中的内容写入磁盘存储中。
2.根据权利要求1所述的双视频混流播放方法,其特征在于,在所述根据所选的混流内容进行同步对齐设置以及播放起始点设置,从所述播放起始点开始,依次将所述混流内容分隔为若干处理段的步骤中,同步对齐步骤具体为:以所述视频轨道的时间轴作为参考轴,调整音频轨道以及字幕轨道的时间偏移量,使音频轨道和字幕轨道与视频轨道同步对齐;所述播放起始点为在所述参考轴上点选的任意时间点。
3.根据权利要求2所述的双视频混流播放方法,其特征在于,还包括以下步骤:
点选所述参考轴上任意时间点时,在预播放界面显示被点选的时间点所对应的帧画面,并显示与之对应的字幕轨道中第一条轨道的字幕内容,并在设置字幕轨道偏移量时实时显示字幕内容。
4.根据权利要求1所述的双视频混流播放方法,其特征在于,还包括以下步骤:
所述处理段从所述播放起始点开始其时长逐渐增大,最前部的混流子线程处理完成当前处理段后由调度线程分配最前部的未被处理的处理段进行处理;处理完成的处理段在缓冲区中按顺序形成播放列表,并根据需要进行播放。
5.根据权利要求4所述的双视频混流播放方法,其特征在于,所述资源占用情况至少包括:文件大小、耗时、CPU占用以及GPU占用;所述调度线程根据处理当前处理段的耗时,计算每秒钟所处理的混流内容时长;调度线程根据当前播放进度以及当前处理速度,确定处理段的最大时长,并根据最大时长重新分隔所述处理段长度。
6.根据权利要求5所述的双视频混流播放方法,其特征在于,还包括以下步骤:
当所述CPU占用或GPU占用超过阈值,且混流子线程的处理速度小于阈值时,减小混流子线程的数量直至处理速度大于阈值或混流子线程数量为1;
当混流子线程数量为1且处理速度小于阈值时,则退出视频播放并弹出警示信息;
当处理速度大于阈值时,则进入边播边混流模式,即在混流子线程处理过程中播放缓冲区中的内容。
7.根据权利要求6所述的双视频混流播放方法,其特征在于,还包括以下步骤:
在边播边混流模式下执行快进或快退指令时,暂停视频播放并在播放列表查询定位点,如果定位点位于播放列表中且缓存区中包含了自定位点开始至少10秒的内容,则跳转至该定位点进行播放,调度线程将定位点之后第一个处理段分配至最前端的混流子线程,最前端的混流子线程停止当前处理工作后开始处理最新分配的处理段;
若缓存区中自定位点开始的内容少于10秒,则视频播放暂停直至缓存区中的内容大于10秒后再进行播放;
若定位点不在缓存区中,则调度线程将定位点所在的处理段分配至最前端的混流子线程,将该处理段之后的处理段依次分配至剩余的其他混流子线程,所有混流子线程停止当前处理工作并开始处理最新分配的处理段。
8.根据权利要求6所述的双视频混流播放方法,其特征在于,还包括以下步骤:在边播边混流模式下执行音频轨道或字幕轨道的偏移量设置时,暂停视频播放并保留当前帧画面,清空缓存区后,按照当前播放时间点前2秒重新开始边播边混流模式进行播放。
9.一种采用权利要求1至8任一项双视频混流播放方法的播放器,其特征在于,包括预播放界面、调度线程、视频播放界面以及若干混流子线程,其中:
所述预播放界面用于展示设置界面,并进行同步对齐设置以及播放起始点设置;
所述视频播放界面用于进行缓存区内容的解码、渲染以及播放输出;
所述调度线程用于控制混流进程并对若干混流子线程进行调度;
所述混流子线程用于对混流内容进行混流处理。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1至8中任一项所述的双视频混流播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311168266.2A CN116916094B (zh) | 2023-09-12 | 2023-09-12 | 一种双视频混流播放方法、播放器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311168266.2A CN116916094B (zh) | 2023-09-12 | 2023-09-12 | 一种双视频混流播放方法、播放器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116916094A true CN116916094A (zh) | 2023-10-20 |
CN116916094B CN116916094B (zh) | 2024-01-19 |
Family
ID=88368104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311168266.2A Active CN116916094B (zh) | 2023-09-12 | 2023-09-12 | 一种双视频混流播放方法、播放器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116916094B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096416B1 (en) * | 2000-10-30 | 2006-08-22 | Autovod | Methods and apparatuses for synchronizing mixed-media data files |
CN103905744A (zh) * | 2014-04-10 | 2014-07-02 | 中央电视台 | 一种渲染合成方法及系统 |
WO2014199357A1 (en) * | 2013-06-14 | 2014-12-18 | Ericsson Television Inc. | Hybrid video recognition system based on audio and subtitle data |
CN108234924A (zh) * | 2018-02-02 | 2018-06-29 | 北京百度网讯科技有限公司 | 视频混流方法、装置、设备及计算机可读介质 |
CN110213635A (zh) * | 2018-04-08 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 视频混流方法、视频混流装置及存储介质 |
CN114040255A (zh) * | 2021-10-28 | 2022-02-11 | 上海网达软件股份有限公司 | 直播字幕生成方法、系统、设备及存储介质 |
CN116233490A (zh) * | 2023-03-09 | 2023-06-06 | 北京奇艺世纪科技有限公司 | 视频合成方法、系统、装置、电子设备及存储介质 |
-
2023
- 2023-09-12 CN CN202311168266.2A patent/CN116916094B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096416B1 (en) * | 2000-10-30 | 2006-08-22 | Autovod | Methods and apparatuses for synchronizing mixed-media data files |
WO2014199357A1 (en) * | 2013-06-14 | 2014-12-18 | Ericsson Television Inc. | Hybrid video recognition system based on audio and subtitle data |
CN103905744A (zh) * | 2014-04-10 | 2014-07-02 | 中央电视台 | 一种渲染合成方法及系统 |
CN108234924A (zh) * | 2018-02-02 | 2018-06-29 | 北京百度网讯科技有限公司 | 视频混流方法、装置、设备及计算机可读介质 |
CN110213635A (zh) * | 2018-04-08 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 视频混流方法、视频混流装置及存储介质 |
CN114040255A (zh) * | 2021-10-28 | 2022-02-11 | 上海网达软件股份有限公司 | 直播字幕生成方法、系统、设备及存储介质 |
CN116233490A (zh) * | 2023-03-09 | 2023-06-06 | 北京奇艺世纪科技有限公司 | 视频合成方法、系统、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116916094B (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348794B2 (en) | Media production system with score-based display feature | |
US10225613B2 (en) | Method and apparatus for video playing processing and television | |
US8074251B2 (en) | Limited social TV apparatus | |
US8082571B2 (en) | Methods, apparatus, and program products to close interaction loops for social tv | |
US7873983B2 (en) | Method and apparatus for controlling an experiential data stream in a social space | |
US7870589B2 (en) | Method for providing commentary audio and additional or replacement video content | |
US7818770B2 (en) | Methods, apparatus, and program products to support a shared viewing experience from remote locations | |
US20220248080A1 (en) | Synchronization of multi-viewer events containing socially annotated audiovisual content | |
US20070016611A1 (en) | Preview method for seeking media content | |
CN103581754A (zh) | 一种数据显示方法及智能设备 | |
US7882530B2 (en) | Method, apparatus, and program products for socially synchronizing an experiential data stream | |
US20060174293A1 (en) | Method and apparatus for associating commentary audio with a position in an experiential data stream | |
WO2023035882A1 (zh) | 视频处理方法、设备、存储介质和程序产品 | |
CN105828195A (zh) | 一种播放器的挂起恢复方法和装置 | |
JP2022524711A (ja) | ユーザの選択に応答して対話型メディア作品の再生を進めるための手法 | |
JP4886279B2 (ja) | 記録されたコンテンツと共に補足コンテンツを提示する方法、装置、およびコンピュータ読取可能な記録媒体 | |
CN115004713A (zh) | 视频分发装置、视频分发方法以及视频分发程序 | |
US20060112343A1 (en) | Methods, apparatus, and program products for aligning presentation of separately recorded experiential data streams | |
US7814518B2 (en) | Methods, apparatus, and program products for presenting replacement content instead of a portion of a recorded content | |
US6909836B2 (en) | Multi-rate real-time players | |
CN116916094B (zh) | 一种双视频混流播放方法、播放器及存储介质 | |
US20080075175A1 (en) | Information processing apparatus and method | |
JP2002165115A (ja) | ノンリニア放送システム | |
US7818771B2 (en) | Methods, apparatus, and program products for controlling presentation of an experiential data stream responsive to conversations in a shared social space | |
US7673064B2 (en) | Methods, apparatus, and program products for presenting commentary audio with recorded content |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |