本发明属于视频处理技术领域,尤其涉及一种不同直播源切换并叠加不同滤镜的方法。
背景技术:
在网络或电视直播中,有时需要根据用户操作或者切换需求在不同直播源之间进行切换,例如某个景点轮播频道需要轮流切换各个不同景点的直播源。
假设想针对不同的景点叠加不同的台标、字幕、台标模糊等滤镜效果(如添加景点介绍字幕或景点logo),传统方案是需要对直播源进行预处理,即先在直播源上加上这些滤镜效果,然后再进入切换系统切换。传统方案的缺点是需要增加额外的转码设备对直播源做预处理,而且对直播源转码会造成输出直播流视频质量下降。
技术实现要素:
本发明的目的是提供一种不同直播源切换并叠加不同滤镜的方法,解决了不需要对直播源进行预处理就能达到不同直播源叠加不同滤镜的技术问题。
为实现上述目的,本发明采用如下技术方案:
一种不同直播源切换并叠加不同滤镜的方法,包括如下步骤:
步骤1:建立直播源获取客户端和直播处理服务器,直播源获取客户端和直播处理服务器通过互联网通信;
在直播处理服务器中建立录入模块和切换模块,录入模块用于添加切换规则以及对不同的直播源添加不同的滤镜配置信息,切换模块用于切换不同的直播源;
步骤2:直播源获取客户端从互联网中获取直播源,并将直播源传入直播处理服务器;
步骤3:在录入模块中预设切换规则和滤镜配置信息,所述滤镜配置信息为针对台标、字幕和台标模糊制定配置规则,台标的配置规则包括图片路径、缩放比例和叠加位置,字幕的配置规则包括字幕内容、字体类型、字体颜色、字体大小和叠加位置,台标模糊的配置规则包括叠加位置和模糊区域大小;
步骤4:当从一个直播源n切换至另一个直播源m时,切换模块采用以下步骤进行切换:
步骤s1:切换模块从录入模块中获取切换规则;
步骤s2:根据当前时间以及切换规则查找将要切换的直播源m,根据当前时间来判断是否进行切换;如果当前时间到达切换直播源m的时间,则打开直播源m,并解析媒体参数,如果当前时间未达到切换直播源m的时间,继续等待并执行步骤s2;
步骤s3:切换模块从录入模块中获取待切换直播源m的滤镜配置信息,滤镜配置信息包括台标、字幕以及台标模糊配置;根据滤镜配置信息生成相应滤镜参数;
步骤s4:切换模块调用ffmpeg滤镜接口,并根据滤镜参数初始化直播源滤镜接口,直播源滤镜接口包括用于处理台标的movie滤镜接口和overlay滤镜接口、用于处理字幕的drawtext滤镜接口以及用于处理台标模糊的delogo滤镜接口;
步骤s5:清除直播源n所使用的滤镜,关闭直播源n;
步骤s6:切换模块开始转码直播源m。
优选的,所述直播源为视频流数据。
优选的,所述滤镜参数包括台标的配置规则、字幕的配置规则和台标模糊的配置规则。
优选的,所述媒体参数包括分辨率、视频帧率和编码格式。
本发明所述的一种不同直播源切换并叠加不同滤镜的方法,解决了不需要对直播源进行预处理就能达到不同直播源叠加不同滤镜的技术问题,本发明的整个流程只进行了一次转码,同等配置下提高了输出流视频质量,能同时应用多种滤镜效果,包括台标、字幕、台标模糊,本发明将切换直播源流程与叠加滤镜流程整合到一个流程中,在切换直播源的同时重新初始化滤镜参数,简化了直播流程。
附图说明
图1是本发明的流程图。
具体实施方式
如图1所示的一种不同直播源切换并叠加不同滤镜的方法,包括如下步骤:
步骤1:建立直播源获取客户端和直播处理服务器,直播源获取客户端和直播处理服务器通过互联网通信;
在直播处理服务器中建立录入模块和切换模块,录入模块用于对不同的直播源添加不同的滤镜信息,切换模块用于切换不同的直播源;
步骤2:直播源获取客户端从互联网中获取直播源,并将直播源传入直播处理服务器;
步骤3:在录入模块中预设切换规则和滤镜配置信息,所述滤镜配置信息为针对台标、字幕和台标模糊制定配置规则,台标的配置规则包括图片路径、缩放比例和叠加位置,字幕的配置规则包括字幕内容、字体类型、字体颜色、字体大小和叠加位置,台标模糊的配置规则包括叠加位置和模糊区域大小;
本实施例中,切换规则指的是多个直播源之间的切换规则,相当于节目单,如08:00切换景点1直播画面,08:05切换景点2直播画面,08:10切换景点3直播画面;
滤镜配置信息指的是单个直播源的台标、字幕、模糊的配置。
步骤4:当从一个直播源n切换至另一个直播源m时,切换模块采用以下步骤进行切换:
步骤s1:切换模块从录入模块中获取切换规则和滤镜配置;
步骤s2:根据当前时间以及切换规则查找将要切换的直播源m,根据当前时间来判断是否进行切换;如果当前时间到达切换直播源m的时间,则打开直播源m,并解析媒体参数,如果当前时间未达到切换直播源m的时间,继续等待并执行步骤s2;
步骤s3:切换模块从录入模块中获取待切换直播源m的滤镜配置信息,滤镜配置信息包括台标、字幕以及台标模糊配置;根据滤镜配置信息生成相应滤镜参数;
步骤s4:切换模块调用ffmpeg滤镜接口,并根据滤镜参数初始化直播源滤镜接口,直播源滤镜接口包括用于处理台标的movie滤镜接口和overlay滤镜接口、用于处理字幕的drawtext滤镜接口以及用于处理台标模糊的delogo滤镜接口;
步骤s5:清除直播源n所使用的滤镜,关闭直播源n;
步骤s6:切换模块开始转码直播源m。
切换模块在转码过程中使滤镜生效,通过直播源滤镜接口调用movie滤镜、overlay滤镜、drawtext滤镜和delogo滤镜分别对直播源m的台标、字幕和台标模糊进行处理,其中台标调用movie和overlay滤镜接口,字幕调用drawtext滤镜接口,台标模糊调用delogo滤镜接口。
重复执行步骤s2到步骤s7,从而达到直播源之间的切换。
例如,直播源m的滤镜配置包括一个台标配置和一个字幕配置,台标配置信息包括:图片路径/mnt/clip/pic.png、图片叠加位置x=100,y=100、图片缩放尺寸50%;字幕配置信息包括:字幕内容为“将军列队位于武陵源区风景名胜区西北部天子山风景区,山形奇特,有如将军列队般,栩栩如生。”、字体类型黑体、字体颜色白色、字体大小30。
滤镜接口是ffmpeg提供的一段子程序,通过配置相关的参数就能在直播上实现相应的滤镜效果,配置完后会在直播画面最底行实现滚动字幕。
切换模块开始转码时,利用ffmpeg提供的转码接口,配置相关的转码参数开始转码。需要转码的原因是由于直播源n和直播源m的编码格式可能不一样,比如n的分辨率是1280x720、帧率为20fps、封装格式为mpegts;m的分辨率是1920x1080、帧率为25fps、封装格式为flv。需要将他们转码成统一的格式如1280x720、25fps、flv封装下游才能接收。
优选的,所述直播源为视频流数据。
优选的,所述滤镜参数包括切换规则中规定的台标的配置规则、字幕的配置规则和台标模糊的配置规则。
优选的,所述媒体参数包括分辨率、视频帧率和编码格式,如h264、aac等。
本发明所述的一种不同直播源切换并叠加不同滤镜的方法,解决了不需要对直播源进行预处理就能达到不同直播源叠加不同滤镜的技术问题,本发明的整个流程只进行了一次转码,同等配置下提高了输出流视频质量,能同时应用多种滤镜效果,包括台标、字幕、台标模糊,本发明将切换直播源流程与叠加滤镜流程整合到一个流程中,在切换直播源的同时重新初始化滤镜参数,简化了直播流程,本发明能够在不增加直播源预处理设备的前提下同时完成直播源切换并叠加不同滤镜效果,这样做既降低了设备成本又提高了输出直播流视频质量。