本发明属于多媒体技术领域,尤其涉及一种媒体文件转码生成多音轨多字幕点播内容的方法及系统。
背景技术:
当今的点播系统为了覆盖更多的用户群体,给用户提供了各种各样的内容,同时为了满足不同用户在不同网络环境下的观看需求,就需要减少对带宽的占用。而对转码服务提供者来说,在视频的转码和传输过程中对文件大小,转码灵活度,转码工作量的考量也是必要的。
目前最典型的方法是将视频、音频和字幕整合到一个媒体文件中,针对不同网络环境、输出设备的情况下,系统会读取已经转码好的视频文件,具体过程为:对原有的媒体文件进行转码工作,将所有的视频、音频和字幕都整合为一个媒体文件,然后将媒体文件存储在特定目录,收到请求时传输出去。
采用这种系统的不足之处在于:
转码灵活度很低,对于同样的视频,如果音频和字幕有所修改,就会对视频重复编码很多次;
带宽的大量占用,对于使用该方法生成的视频文件,其包含了所有的音频和字幕,在用户请求时,需要将这些音频和字幕全部传输出去;
将字幕以硬编码的方式嵌入到视频中的方式,对于每种字幕都要一个视频文件,十分占用存储空间;
在用户切换的不同字幕的过程中,需要重新下载视频和音频文件,可能导致卡顿,降低用户体验。
技术实现要素:
为了解决现有技术存在的技术问题,本发明提出了一种媒体文件转码生成多音轨多字幕点播内容的方法及系统,本系统及方法的目的在于转码过程中,对于转出文件,采用一种更加灵活的媒体文件组织方式,支持多种类型音频和字幕,节省用户流量,减少媒体文件占用存储。
为了实现以上目的,本发明采用了如下技术方案:
对于输入的媒体文件,首先将一份媒体文件对其视频、音频和字幕分别转码,转码输出不同的流文件:视频流、音频流、字幕流,再对不同的流文件进行切片处理,并创建对应的索引文件。
视频流、音频流和字幕流文件都会被切片然后生成相对应的索引文件记录。完成每个流文件的处理过程中,需要生成一个index.m3u8索引文件,将视频流、音频流和字幕流的索引文件记录在index.m3u8索引文件内。
如果需要加入新的语音和字幕文件,按照上述步骤,先转码输出流文件,然后对流文件进行切片,并且生成索引文件,然后将索引文件加入到index.m3u8索引文件内。
本发明通过对媒体文件转码后输出的流文件进行切片、存储,然后通过对应的索引文件进行有序访问,最后将视频流、音频流和字幕流的索引文件写入到index.m3u8索引文件中。
在用户播放的过程中,根据index.m3u8索引文件分别选择播放对应的文件流。
与现有技术相比,本发明的有益技术效果在于:
采用本发明的技术方案后,根据请求转码的内容,可以减少转码工作量,支持动态添加音频、字幕,而不需要改变现有内容,增加了转码系统的灵活度;
视频与音频及字幕分离存储,在多语言情况下,降低了存储占用;
对用户而言,支持多语言和多字幕选择,降低了对带宽的占用,提升了用户体验。
附图说明
图1为本发明的索引文件关系图;
图2为本发明的一种媒体文件转码生成多音轨多字幕点播内容的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。
如图2所示,媒体文件通过转码器,分别对视频、音频和字幕转码输出得到视频流、音频流和字幕流文件,再对流文件进行切片处理:对视频流文件切片后得到ts格式的文件;对音频流文件切片之后得到ts格式的文件;对字幕流文件切片之后得到webvtt格式的字幕文件。
流文件切片之后,创建对应的.m3u8格式文件。通过索引文件可以重新组合切片文件,还原成原流文件。视频流、音频流和字幕流切片并创建各自的索引文件之后,将各自的索引文件加入到index.m3u8索引文件中,索引文件关系如图1所示。在index.m3u8索引文件中保存各个流文件的索引文件。
媒体文件转码过程中,会根据名字创建存储目录和index.m3u8索引文件。当某一名字的媒体文件第一次进行转码,则先创建存储目录和index.m3u8索引文件,再转码输出流文件并对其进行切片处理、创建切片的索引文件,最后将切片的索引文件写入到index.m3u8索引文件中。
当存在与需要转码的媒体文件同名目录时,则表示已经有过同名的媒体文件转码处理,只需要转码输出流文件并对其切片处理、创建切片的索引文件,再将切片的索引文件写入到index.m3u8索引文件中。通过这种方式可以实现动态添加输入的视频、音频和字幕流。
用户在观看视频时,根据需要选择视频流、音频流和字幕流,分别从index.m3u8索引文件中找到切片文件,并发送给用户。用户在使用的过程中切换不同的选项时,再次根据index.m3u8索引文件中的地址来发送新的内容给用户。
一种媒体文件转码生成多音轨多字幕点播内容的系统,包括:
输入单元,用于输入媒体文件;
转码器,用于输入媒体文件,并将其视频、音频和字幕分别转码输出得到视频流、音频流和字幕流文件;
切片单元,用于对不同的流文件进行切片处理;
第一生成单元,用于生成与不同的流文件的切片对应的索引文件;
判断单元,用于判断是否存在index.m3u8索引文件;
第二生成单元,用于生成index.m3u8索引文件;
处理单元,用于将视频流、音频流和字幕流的索引文件记录在index.m3u8索引文件内;
播放单元,用于根据index.m3u8索引文件分别选择播放对应的文件流。
本系统的工作过程如下:
媒体文件从输入单元输入至转码器,进而由转码器将媒体文件的视频、音频和字幕分别转码输出得到视频流、音频流和字幕流文件,切片单元对这些流文件进行切片处理,在切片的过程中由第一生成单元生成与切片对应的索引文件,然后判断单元判断是否存在index.m3u8索引文件,若存在,则处理单元将视频流、音频流和字幕流的索引文件记录在index.m3u8索引文件内;若不存在,则第二生成单元生成index.m3u8索引文件,进而再将视频流、音频流和字幕流的索引文件记录在index.m3u8索引文件内;最后用户根据index.m3u8索引文件在播放单元上分别选择播放对应的文件流。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。