CN102821308B - 一种多场景流媒体课件录制与直播方法 - Google Patents

一种多场景流媒体课件录制与直播方法 Download PDF

Info

Publication number
CN102821308B
CN102821308B CN201210180799.8A CN201210180799A CN102821308B CN 102821308 B CN102821308 B CN 102821308B CN 201210180799 A CN201210180799 A CN 201210180799A CN 102821308 B CN102821308 B CN 102821308B
Authority
CN
China
Prior art keywords
video
frame
teacher
audio
file
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.)
Active
Application number
CN201210180799.8A
Other languages
English (en)
Other versions
CN102821308A (zh
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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201210180799.8A priority Critical patent/CN102821308B/zh
Publication of CN102821308A publication Critical patent/CN102821308A/zh
Application granted granted Critical
Publication of CN102821308B publication Critical patent/CN102821308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明为一种多场景流媒体课件录制与直播方法,在录制时,通过屏幕视频关键帧补帧算法使录制的教师摄像头视频多媒体文件和屏幕视频多媒体文件同步;在流化直播过程中,通过视频PES包和音频PES包同步封装复用,将实时的视频流和音频流编码成TS流文件,分发到Web直播服务器中,通过多视频源同步直播控制实现同步播放教师摄像头视频和屏幕视频,本发明支持Windows/Linux跨平台运行,同时支持教师摄像头视频、教师音频和屏幕视频的多源录制以及流化直播技术,可以边录制边直播。

Description

一种多场景流媒体课件录制与直播方法
技术领域
本发明属于多媒体录制及直播领域,涉及到音视频的采集、编码以及播放领域,特别是涉及到一种多场景流媒体课件录制与直播方法。
背景技术
计算机技术的发展、Internet普及以及网络带宽的飞速增长带来了多媒体技术的广泛应用,同时,网络教育/远程教育也已普遍被人们所接受。将教师的授课过程通过录像录音设备录制成多媒体文件,有利于记忆、保存资料,借助于网络点播技术,有利于开展网上教学。检索到的以下几篇与本发明相关的属于多媒体录制领域的专利,它们分别是:
1.中国专利200910211202.X,多媒体会议的录播方法、装置及系统、回播方法及装置;
2.中国专利200610098514.0,实现多媒体录放的方法及装置;
3.中国专利200680012687.4,一种实现多媒体录制的方法、系统及媒体资源处理设备;
4.中国专利200910079892.8一种用于教学的课程录制系统;
5.中国专利200610091154.1实现多媒体录制的方法及系统;
6.中国专利200610033656.9一种通过H.248协议实现多媒体录制的方法及系统。
在上述专利1中,发明人提出了一种根据录制策略对多媒体会议中多路媒体流的数据进行组合录制处理方法,能够较佳地反应多媒体会议的综合情况。
在上述专利2中,发明人提出了一种用于解决在多媒体录放时一个媒体文件中的多条媒体流之间不能同步的问题的方法,通过该发明的实施,保证了一个媒体文件中的多条媒体流之间同步。
在上述专利3中,发明人提出了一种实现多媒体录制的方法,包括在媒体资源处理设备和录制数据源之间建立多媒体通道;媒体资源控制设备携带媒体控制参数,指示媒体资源处理设备启动录制操作;按照指定格式保存接收到的多媒体文件。
在上述专利4中,发明人提出了一种用于教学的课程录制系统,包括摄像模块、跟踪定位模块、多媒体教室模块、录播工作站、录播系统资源管理模块等,实现课堂无干扰、无意识控制、无人值守的全自动智能录播。
在上述专利5中,发明人提出了一种多媒体录制方法,该方法预先设置表示多媒体录制结束的DTMF键序列,当媒体处理设备检测到所述DTMF键序列中的键被按下时,停止录制并向媒体控制设备上报录制结束的事件,媒体控制设备接收到录制结束事件后,通知媒体处理设备保存多媒体信息。
在上述专利6中,发明人提出了一种通过H.248协议实现多媒体录制的方法及系统,利用该发明提供的方法及系统,使得可以在例如WCDMA或IMS的媒体资源控制和处理设备上实现多媒体留言信箱等业务。
根据上述查新,现有技术所存在的问题是,都没有考虑多场景录制和流化直播技术,导致录制场景不全面或对多视频源的请求播放不能同步。
发明内容
为了克服上述现有技术的不足,本发明的目的在于提供一种多场景流媒体课件录制与直播方法,不仅支持Windows/Linux下多场景流媒体课件同步录制,还支持录制场景的流化直播,实现边录制边直播及多视频源的同步控制功能。
为了实现上述目的,本发明采用的技术方案是:
一种多场景流媒体课件录制与直播方法,
在开始录制时,通过屏幕视频关键帧补帧算法使录制的教师摄像头视频多媒体文件和屏幕视频多媒体文件同步;
在流化直播过程中,通过视频PES包和音频PES包同步封装复用,将实时的视频流和音频流编码成TS流文件,分发到Web直播服务器中,通过多视频源同步直播控制实现同步播放教师摄像头视频和屏幕视频。
所述屏幕视频关键帧补帧算法包括如下步骤:
Step1:初始化屏幕视频帧缓存队列,录制教师音频流、教师摄像头视频流和屏幕视频流的编码参数,并置补帧标志位为假;
Step2:检测输入参数的有效性,如果有效,进入下一步,否则,直接结束;
Step3:启动教师音频采集线程、教师摄像头视频采集线程和屏幕视频采集线程,分别采集教师音频数据、教师摄像头视频数据和屏幕视频数据;
Step4:判断教师音频数据、教师摄像头视频数据和屏幕视频数据采集是否成功,如果成功,进入下一步,否则,直接结束;
Step5:根据编码参数对上述三路数据分别编码,输出编码后的教师音频流、教师摄像头视频流和屏幕视频流;
Step6:判断补帧标志位,若补帧标志位为真,则将收到的教师摄像头视频数据和教师音频数据组合写入教师摄像头视频媒体文件,将收到的屏幕视频数据和教师音频数据组合写入屏幕视频媒体文件,并跳转到Step9;若补帧标志位为假,则进入下一步;
Step7:检测教师摄像头视频流,直到收到教师摄像头视频关键帧,则开始写入教师摄像头视频媒体文件,并记录关键帧时间戳T;
Step8:将屏幕视频帧保存在屏幕视频帧缓存队列,并检测是否收到屏幕视频关键帧,若收到,则将该关键帧补到屏幕视频帧缓存队列头部,同时修改该关键帧的时间戳为T,再将缓存队列内的数据依次写入屏幕视频媒体文件,清空屏幕视频帧缓存队列,置补帧标志位为真;
Step9:判断录制是否结束,若未结束,则返回执行Step5;否则,直接跳转到结束。
所述视频PES包和音频PES包同步封装复用包括如下步骤:
Step1:初始化视音频缓存队列及各个参数,输入TS媒体文件的切片时长,开始接收视频PES流和音频PES流,根据接收的视音频数据分别计算视频帧的显示时间标志和音频帧的显示时间标志,其中显示时间标志是PES包头中可选字段,用于通知解码器显示已解码的图像帧的时间戳;
Step2:若音频帧的显示时间标志小于等于视频帧的显示时间标志,则将音频帧数据加入音频帧的缓存队列,并更新音频帧显示时间标志;否则,将视频帧数据加入视频帧的缓存队列,更新视频帧显示时间标志;
Step3:检测音频帧的缓存队列是否为空,若不为空,则将队列中的音频PES流数据写入TSi文件之中;检测视频帧的缓存队列是否为空,若不为空,则将队列中的视频PES流数据写入TSi文件之中;
Step4:检测TSi文件是否写完,若TSi文件还未写完,即TSi文件的帧数目小于TS媒体文件切片时长与视频帧速率之积,则返回Step2,否则,输出当前的TSi文件,并存储到服务器之中,上述TSi文件指媒体序列文件中的第i个TS文件;
Step5:服务器更新TS数据索引文件,重置所有参数;
Step6:判断录制是否结束,若未结束,则返回执行Step2;否则,直接结束。
音频帧的显示时间标志PTS利用如下公式计算:
PTS = AudioFrmNum * AudioSamp * Sequence Sampling
其中,AudioFrmNum是当前音频帧的在完整码流的音频帧中的序号;AudioSamp是音频帧的样本点,与采样率有关;Sequence为时钟频率;Sampling为音频采样率。
视频帧的显示时间标志PTS(i)利用如下公式计算:
PTS ( i ) = base _ clock × ( i _ frame _ counter + pic _ order _ cnt _ lsb / 2 ) × time _ scale num _ units _ in _ tick / 2
其中,i_frame_counter为最近一次关键帧的帧序,再用时长和帧数目计算出帧率,time_scale为时长,num_units_in_tick为帧数目,pic_order_cnt_lsb为当前帧在视频序列中显示顺序位置,base_clock为基本时钟频率。
同步封装复用过程中,在音频帧的PES包中显示时间标志和视频帧的PES包中显示时间标志相等的情况下,优先把音频的PES包复用到TS流中。
所述多视频源同步直播控制具体步骤如下:
Step1:初始化视音频缓存队列,初始化编码器参数,输入TS媒体文件的切片时长,读入教师摄像头视频数据流、教师音频数据流和屏幕视频数据流;
Step2:根据教师摄像头数据流参数计算视频帧速率,将该视频帧速率与所述切片时长相乘得到教师摄像头视频TS流媒体文件中所含的视频帧个数;根据屏幕视频数据流参数计算出屏幕视频帧速率,将该屏幕视频帧速率与所述切片时长相乘得到屏幕视频TS流媒体文件中所含的屏幕帧个数;
Step3:根据教师摄像头视频数据流、教师音频数据流和屏幕视频数据流,分别计算相应的显示时间标志;
Step4:根据教师摄像头视频TS流媒体文件中所含的视频帧个数进行教师摄像头视频帧和教师音频帧的循环封装复用,根据屏幕视频TS流媒体文件中所含的屏幕帧个数进行屏幕视频帧和教师音频帧的循环封装复用,同时输出教师摄像头视频的TS流媒体序列文件和屏幕视频TS媒体序列文件;
Step5:根据教师摄像头视频的TS流媒体序列文件和屏幕视频的TS媒体序列文件,更新服务器相应的数据索引文件,实现多视频源的同步直播控制。
与现有技术相比,本发明的优点是:支持教师摄像头视频、教师音频和屏幕视频的多场景录制及录制场景的流化直播,实现支持Windows/Linux的多场景同步录制以及对多视频源的同步控制。
附图说明
图1为本发明多场景流媒体课件录制与直播方法流程图。
图2为本发明屏幕视频关键帧补帧算法流程图。
图3为公知的TS包结构图。
图4为公知的PES包结构图。
图5为本发明视频PES包和音频PES包的同步封装复用流程图。
图6为本发明多视频源的同步直播控制方法流程图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
如附图1所示,本发明一种多场景流媒体课件录制与直播方法,首先需要进行对音视频数据进行采集,包括教师摄像头视频数据、教师音频数据和屏幕视频数据,然后对采集到数据分别进行编码,输出多路实时流,即教师音频流、教师摄像头视频流和屏幕视频流,开始录制时通过屏幕视频关键帧补帧算法,使录制的教师摄像头视频多媒体文件和屏幕视频多媒体文件能够同步;在流化直播过程中,采用视频PES包和音频PES包的同步封装复用方法,将实时的视频流和音频流编码成TS流文件,分发到Web直播服务器中,并采用多视频源的同步直播控制技术,协调请求端对多视频源的播放请求,使请求端可以同步播放教师摄像头视频和屏幕视频。
下面分步骤对本发明的技术方案进行详细叙述。
1、教师摄像头视频、教师音频及屏幕视频数据的采集与编码
多场景录制包括教师摄像头视频、教师音频和屏幕视频的采集、编码。首先,获取采集设备对象,从采集设备对象获取数据并由ffmpeg进行编码。
1)采集教师摄像头视频数据
本发明中采用跨平台计算机视觉库OpenCV来采集摄像头视频数据,具体步骤如下:
Step1:获取摄像头对象,检查是否有摄像头,若返回成功,则继续下面步骤,否则结束;
Step2:设置摄像头对象采集参数,包括摄像头采集图像的像素宽和高;
Step3:检查参数是否正确,若正确,则继续下面步骤,否则结束;
Step4:按帧速率定时从摄像头对象采集图像数据,数据格式为RGB24,将RGB24数据进行颜色空间转换成YUV420P,并调用ffmpeg的编码函数进行编码;
Step5:重复Step4,直到收到停止录制的消息;
Step6:收到停止录制消息,销毁摄像头对象;
2)采集屏幕视频数据
本发明采用跨平台的QT开发平台来采集教师计算机屏幕视频数据,具体步骤如下:
Step1:获取教师计算机屏幕对象,若返回成功,则继续下面步骤,否则结束;
Step2:获取录制计算机显示器屏幕对象大小;
Step3:定时从教师计算机屏幕对象采集屏幕图像数据,数据格式为RGB24,将RGB24数据进行颜色空间转换成YUV420P并进行缩放,并调用ffmpeg的编码函数进行编码;
Step4:重复Step3,直到收到停止录制的消息;
Step5:收到停止录制消息,销毁教师计算机屏幕对象;
3)采集教师音频数据
本发明采用跨平台的QT开发平台来采集教师音频数据,具体步骤如下:
Step1:获取采集声卡设备对象,若返回成功,则继续下面步骤,否则结束;
Step2:配置声卡采集对象采集参数,包括采集频率、声道、位宽等;
Step3:检查参数是否正确,若正确,则继续下面步骤,否则结束;
Step4:打开声卡设备,自动采集声音数据,并由ffmpeg进行编码;
Step5:重复Step4,直到收到停止录制的消息;
Step6:收到停止录制消息,销毁声卡采集对象;
4)采用ffmpeg对教师摄像头视频、教师音频和屏幕视频编码
本发明中ffmpeg对视音频编码的具体步骤如下:
Step1:初始化编码参数,并检查参数是否正确,若正确,则继续下面步骤,否则返回失败;
Step2:分别打开教师摄像头视频、教师音频和屏幕视频对应的编码器,准备编码;
Step3:若输入为视频RGB24数据,将RGB24数据进行颜色空间转换成YUV420P,再由编码器进行编码,输出视频H264数据帧;若输入为音频数据,则直接由编码器编码,输出音频AAC数据帧;
Step4:重复Step3,直到收到停止录制的消息;
Step5:收到停止录制消息,关闭编码器,销毁ffmpeg对象;
2、屏幕视频关键帧补帧算法
ffmpeg编码的视频帧分为帧内编码帧(I帧)、前向预测编码帧(P帧)和双向预测内插编码帧(B帧),其中I帧也称为关键帧,它可以不参考其他任何帧而独立编码。录制的视频文件需要以关键帧开始记录,即视频文件的第一个帧需要记录的是关键帧。教师摄像头视频和屏幕视频的关键帧间隔均设为4-6秒,由于两路视频流的关键帧并非同时到达,教师摄像头视频多媒体文件和屏幕视频多媒体文件不能同时开始录制,导致在点播课程的两种媒体文件时播放时间不能同步。本发明在录制文件时,通过屏幕视频关键帧补帧算法,使录制的教师摄像头视频多媒体文件和屏幕视频多媒体文件能够同步播放,算法流程图如附图2所示,具体步骤如下:
Step1:初始化屏幕视频帧缓存队列及录制参数,其中参数包括教师摄像头视频流、教师音频流和屏幕视频流的编码参数,并置补帧标志位为假;
Step2:检测输入参数的有效性,如果有效,进入下一步,否则,直接跳转到结束;
Step3:启动教师音频采集线程、教师摄像头视频采集线程和屏幕视频采集线程,分别采集教师音频数据、教师摄像头视频数据和屏幕视频数据;
Step4:判断教师音频数据、教师摄像头视频数据和屏幕视频数据采集是否成功,如果成功,进入下一步,否则,直接跳转到结束;
Step5:根据编码参数,对上述三路媒体数据分别采用相应的编码器进行编码,输出编码后数据流,包括教师音频流、教师摄像头视频流和屏幕视频流;
Step6:判断补帧标志位,若补帧标志位为真,说明已进行了补帧,将收到的教师摄像头视频数据和教师音频数据组合写入教师摄像头视频媒体文件,将收到的屏幕视频数据和教师音频数据组合写入屏幕视频媒体文件,并跳转到Step9;若补帧标志位为假,则进入下一步;
Step7:检测教师摄像头视频流,直到收到教师摄像头视频关键帧,则开始写入教师摄像头视频媒体文件,并记录关键帧时间戳T;
Step8:将屏幕视频帧保存在屏幕视频帧缓存队列,并检测是否收到屏幕视频关键帧,若收到,则将该关键帧补到屏幕视频帧缓存队列头部,同时修改该关键帧的时间戳为T,再将缓存队列内的数据依次写入屏幕视频媒体文件,清空屏幕视频帧缓存队列,置补帧标志位为真;
Step9:判断录制是否结束,若未结束,则返回执行Step5;否则,直接跳转到结束。
3、视频PES包和音频PES包的同步封装复用方法
在MPEG-2标准中,由于TS包有着固定大小,因此比较好确定帧的起始位置,因此也比较容易从丢包中恢复,使得TS适用于大多数误码环境之中。TS包长度固定为188B,由包头、调整头和净荷三部分组成。TS包结构图如附图3所示。
在MPEG-2标准之中,TS流文件是逐层打包的,首先要先把视音频的ES流数据打包成PES包数据,然后再将PES包复用成TS包。PES包由PES包头和PES数据块组成,PES包结构图如附图4所示。
在PES包头可选字段中有两个非常重要的字段:显示时间标志PTS(Presentation Time Stamp)以及解码时间标志DTS(Decoding Time Stamp),PTS用于通知解码器什么时候显示一帧已解码的图像帧,而DTS用于指示什么时候对接收到的图像帧数据流进行解码。解码时间标志DTS必须和显示时间标志一起出现,不能独立存在的。一般来说DTS的值可以由PTS的值计算出来。
将音频帧打包成一个PES分组,只需要读取合适长度的音频帧数据,在具有音频帧帧头标识的PES包上加上包头内容,如PTS,PES长度等字段的内容。其中PTS的算法如下:
PTS = AudioFrmNum * AudioSamp * Sequence Sampling
其中,AudioFrmNum是当前音频帧的在完整码流的音频帧中的序号;AudioSamp是音频帧的样本点,与采样率有关;Sequence为时钟频率;Sampling是音频采样率。
流化模块传输的H264的ES原始流是以NAL的格式存在的,在使用H264的ES原始流来打包成PES包时,首先需要将数据流分割成一个一个的NALU(Network Abstract Layer Unit)数据。每一个NALU数据是由数据头和RBSP数据组成的。相对于音频的PES打包,视频流打包成PES包要复杂许多。视频编码和音频编码根本的不同在于它不仅采用帧内编码,同时也有帧间编码的编码方式。
设最近一次I帧的帧序为i_frame_counter,再用时长和帧数目计算出帧率,时长为time_scale,帧数目为num_units_in_tick,设当前帧在视频序列中显示顺序位置为pic_order_cnt_lsb,基本时钟频率为base_clock,计算H264视频PES包的PTS:
PTS ( i ) = base _ clock × ( i _ frame _ counter + pic _ order _ cnt _ lsb / 2 ) × time _ scale num _ units _ in _ tick / 2
在获取到视频和音频的PES包之后,需要按照同步顺序将其复用到TS流中去。复用过程中要注意解码之前需要解码显示的数据必须到达缓存区,并且解码端的缓存区在解码过程中既不能上溢也不能下溢,同时这些缓存数据在缓存区停留的时间要尽量少。
在进行视频PES包和音频PES包的同步封装复用过程中,对于音频的PES包来说,由于音频帧长度很小,所以在进行复用的时候一般默认音频帧的PES包优先级高于视频帧的PES包优先级,在音频帧的PES包中PTS和视频帧的PES包中PTS相等的情况下,优先把音频的PES包复用到TS流中去。如果先复用视频帧的PES包,就可能因为复用的时间过长而使音频帧的PES包延时过大,造成解码端的缓冲区溢出。
视频PES包和音频PES包的同步封装复用流程图如附图5所示,具体步骤如下:
Step1:初始化视音频缓存队列及各个参数,输入TS媒体文件的切片时长Time_TS,开始接收视频PES流Video_PES和音频PES流Audio_PES,根据接收的视音频数据分别计算视频帧的显示时间标志Video_PTS(i)和音频帧的显示时间标志Audio_PTS(i);
Step2:若Audio_PTS(i)小于等于Video_PTS(i),则将音频帧数据加入音频帧的缓存队列Audio_Buf,并更新音频帧显示时间标志Audio_PTS(i);否则,将视频帧数据加入视频帧的缓存队列Video_Buf,更新视频帧显示时间标志Video_PTS(i);
Step3:检测Audio_Buf是否为空,若不为空,则将Audio_Buf中的音频PES流数据写入TSi文件之中;检测Video_Buf是否为空,若不为空,则将Video_Buf中的视频PES流数据写入TSi文件之中;
Step4:检测TSi文件是否写完,若TSi文件还未写完,即TSi文件的帧数目小于TS媒体文件切片时长Time_TS与视频帧速率之积,则返回Step2,否则,输出当前的TSi文件,并存储到服务器之中;
Step5:服务器更新TS数据索引文件,重置所有参数;
Step6:判断录制是否结束,若未结束,则返回执行Step2;否则,直接跳转到结束;
4、多视频源的同步直播控制
流化直播过程中,客户端请求的数据源分别有教师摄像头视频、屏幕视频和教师音频三个数据源,必须保证用户获取到的教师摄像头视频索引文件和屏幕视频的索引文件的一致性,多源播放才能够同步。索引文件的更新是基于TS切片文件内包含的帧个数,TS文件里面的帧个数,是由H264视频帧速率和TS划分时长决定的。教师摄像头视频的索引文件要和屏幕视频的索引文件同步更新,必须保证教师摄像头视频的TS媒体序列文件要和屏幕视频的TS媒体序列文件同步生成,需要教师摄像头视频的TS媒体序列文件和屏幕视频的TS媒体序列屏幕划分到相等的时长。
录制时教师摄像头视频和屏幕视频的帧速率是不同的。教师摄像头视频是通过摄像头以每秒15帧的帧速率进行采集图像数据,分辨率为320*240;屏幕视频是以每秒1帧的帧速率采集当前计算机显示器显示的信息,分辨率为1024*768。由于教师摄像头视频和屏幕视频的分辨率大小不同,以及视频帧速率差距都很大,若要使教师摄像头视频和屏幕视频播放时同步,必须使教师摄像头视频的TS切片文件和屏幕视频的TS切片文件一致。
多视频源的同步直播控制技术流程图如附图6所示,具体步骤如下:
Step1:初始化视音频缓存队列,初始化编码器参数,输入TS媒体文件的切片时长Time_TS,读入教师摄像头视频数据流Video、教师音频数据流Audio和屏幕视频数据流Screen;
Step2:根据教师摄像头数据流参数计算视频帧速率Video_FPS,计算Video_FPS与Time_TS的乘积,得到教师摄像头视频TS流媒体文件中所含的视频帧个数Video_Num;根据屏幕视频数据流参数计算出屏幕视频的帧速率Screen_FPS,计算Screen_FPS与Time_TS的乘积,得到屏幕视频TS流媒体文件中所含的屏幕帧个数Screen_Num;
Step3:根据教师摄像头视频数据流Video、教师音频数据流Audio和屏幕视频数据流Screen,分别计算Video_PTS、Audio_PTS和Screen_PTS;
Step4:根据Video_Num进行教师摄像头视频帧和教师音频帧的循环封装复用,根据Screen_Num进行屏幕视频帧和教师音频帧的循环封装复用,复用技术为本发明所述的视音频同步封装复用技术,同时输出教师摄像头视频的TS流媒体序列文件Video_TSi和屏幕视频TS媒体序列文件Screen_TSi;
Step5:根据教师摄像头视频的TS序列文件Video_TSi和屏幕视频的序列文件Screen_TSi,更新服务器相应的数据索引文件,实现多视频源的同步直播控制。

Claims (4)

1.一种多场景流媒体课件录制与直播方法,其特征在于,
在开始录制时,通过屏幕视频关键帧补帧算法使录制的教师摄像头视频多媒体文件和屏幕视频多媒体文件同步;
在流化直播过程中,通过视频PES包和音频PES包同步封装复用,将实时的视频流和音频流编码成TS流文件,分发到Web直播服务器中,通过多视频源同步直播控制实现同步播放教师摄像头视频和屏幕视频;
其中:
所述屏幕视频关键帧补帧算法包括如下步骤:
Step1:初始化屏幕视频帧缓存队列,录制教师音频流、教师摄像头视频流和屏幕视频流的编码参数,并置补帧标志位为假;
Step2:检测输入参数的有效性,如果有效,进入下一步,否则,直接结束;
Step3:启动教师音频采集线程、教师摄像头视频采集线程和屏幕视频采集线程,分别采集教师音频数据、教师摄像头视频数据和屏幕视频数据;
Step4:判断教师音频数据、教师摄像头视频数据和屏幕视频数据采集是否成功,如果成功,进入下一步,否则,直接结束;
Step5:根据编码参数对上述三路数据分别编码,输出编码后的教师音频流、教师摄像头视频流和屏幕视频流;
Step6:判断补帧标志位,若补帧标志位为真,则将收到的教师摄像头视频数据和教师音频数据组合写入教师摄像头视频媒体文件,将收到的屏幕视频数据和教师音频数据组合写入屏幕视频媒体文件,并跳转到Step9;若补帧标志位为假,则进入下一步;
Step7:检测教师摄像头视频流,直到收到教师摄像头视频关键帧,则开始写入教师摄像头视频媒体文件,并记录关键帧时间戳T;
Step8:将屏幕视频帧保存在屏幕视频帧缓存队列,并检测是否收到屏幕视频关键帧,若收到,则将该关键帧补到屏幕视频帧缓存队列头部,同时修改该关键帧的时间戳为T,再将缓存队列内的数据依次写入屏幕视频媒体文件,清空屏幕视频帧缓存队列,置补帧标志位为真;
Step9:判断录制是否结束,若未结束,则返回执行Step5;否则,直接跳转到结束;
所述视频PES包和音频PES包同步封装复用包括如下步骤:
Step1:初始化视音频缓存队列及各个参数,输入TS媒体文件的切片时长,开始接收视频PES流和音频PES流,根据接收的视音频数据分别计算视频帧的显示时间标志和音频帧的显示时间标志,其中显示时间标志是PES包头中可选字段,用于通知解码器显示已解码的图像帧的时间戳;
Step2:若音频帧的显示时间标志小于等于视频帧的显示时间标志,则将音频帧数据加入音频帧的缓存队列,并更新音频帧显示时间标志;否则,将视频帧数据加入视频帧的缓存队列,更新视频帧显示时间标志;
Step3:检测音频帧的缓存队列是否为空,若不为空,则将队列中的音频PES流数据写入TSi文件之中;检测视频帧的缓存队列是否为空,若不为空,则将队列中的视频PES流数据写入TSi文件之中;
Step4:检测TSi文件是否写完,若TSi文件还未写完,即TSi文件的帧数目小于TS媒体文件切片时长与视频帧速率之积,则返回Step2,否则,输出当前的TSi文件,并存储到服务器之中,上述TSi文件指媒体序列文件中的第i个TS文件;
Step5:服务器更新TS数据索引文件,重置所有参数;
Step6:判断录制是否结束,若未结束,则返回执行Step2;否则,直接结束;
所述多视频源同步直播控制具体步骤如下:
Step1:初始化视音频缓存队列,初始化编码器参数,输入TS媒体文件的切片时长,读入教师摄像头视频数据流、教师音频数据流和屏幕视频数据流;
Step2:根据教师摄像头数据流参数计算视频帧速率,将该视频帧速率与所述切片时长相乘得到教师摄像头视频TS流媒体文件中所含的视频帧个数;根据屏幕视频数据流参数计算出屏幕视频帧速率,将该屏幕视频帧速率与所述切片时长相乘得到屏幕视频TS流媒体文件中所含的屏幕帧个数;
Step3:根据教师摄像头视频数据流、教师音频数据流和屏幕视频数据流,分别计算相应的显示时间标志;
Step4:根据教师摄像头视频TS流媒体文件中所含的视频帧个数进行教师摄像头视频帧和教师音频帧的循环封装复用,根据屏幕视频TS流媒体文件中所含的屏幕帧个数进行屏幕视频帧和教师音频帧的循环封装复用,同时输出教师摄像头视频的TS流媒体序列文件和屏幕视频TS媒体序列文件;
Step5:根据教师摄像头视频的TS流媒体序列文件和屏幕视频的TS媒体序列文件,更新服务器相应的数据索引文件,实现多视频源的同步直播控制。
2.根据权利要求1所述多场景流媒体课件录制与直播方法,其特征在于,利用如下公式计算音频帧的显示时间标志PTS
PTS = AudioFrmNum * AudioSamp * Sequence Sampling
其中,AudioFrmNum是当前音频帧的在完整码流的音频帧中的序号;AudioSamp是音频帧的样本点,与采样率有关;Sequence为时钟频率;Sampling为音频采样率。
3.根据权利要求1所述多场景流媒体课件录制与直播方法,其特征在于,利用如下公式计算视频帧的显示时间标志PTS(i)
PTS ( i ) = base _ clock × ( i _ frame _ counter + pic _ order _ cnt _ lsb / 2 ) × time _ scale num _ units _ in _ tick / 2
其中,i_frame_counter为最近一次关键帧的帧序,再用时长和帧数目计算出帧率,time_scale为时长,num_units_in_tick为帧数目,
pic_order_cnt_lsb为当前帧在视频序列中显示顺序位置,base_clock为基本时钟频率。
4.根据权利要求1所述多场景流媒体课件录制与直播方法,其特征在于,同步封装复用过程中,在音频帧的PES包中显示时间标志和视频帧的PES包中显示时间标志相等的情况下,优先把音频的PES包复用到TS流中。
CN201210180799.8A 2012-06-04 2012-06-04 一种多场景流媒体课件录制与直播方法 Active CN102821308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210180799.8A CN102821308B (zh) 2012-06-04 2012-06-04 一种多场景流媒体课件录制与直播方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210180799.8A CN102821308B (zh) 2012-06-04 2012-06-04 一种多场景流媒体课件录制与直播方法

Publications (2)

Publication Number Publication Date
CN102821308A CN102821308A (zh) 2012-12-12
CN102821308B true CN102821308B (zh) 2014-11-05

Family

ID=47305126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210180799.8A Active CN102821308B (zh) 2012-06-04 2012-06-04 一种多场景流媒体课件录制与直播方法

Country Status (1)

Country Link
CN (1) CN102821308B (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281500A (zh) * 2013-04-24 2013-09-04 贵阳朗玛信息技术股份有限公司 处理视频的方法及装置
CN103391403B (zh) * 2013-08-23 2017-08-25 北京奇艺世纪科技有限公司 一种实现多镜头视频拍摄的实时编辑方法及装置
CN103780860B (zh) * 2014-01-28 2017-04-26 福建伊时代信息科技股份有限公司 一种屏幕录像方法及其装置与系统
CN105100963B (zh) * 2014-05-22 2017-12-22 纬创资通股份有限公司 影音媒体文件合成方法与服务系统
CN105407379A (zh) * 2014-08-26 2016-03-16 天脉聚源(北京)教育科技有限公司 多种媒体的同步录制方法
CN104331262B (zh) 2014-10-09 2019-10-29 北京配天技术有限公司 基于QT embedded的同步显示方法、系统及数控机床
CN105049917B (zh) * 2015-07-06 2018-12-07 深圳Tcl数字技术有限公司 录制音视频同步时间戳的方法和装置
CN105049920B (zh) * 2015-07-27 2018-08-10 青岛海信移动通信技术股份有限公司 一种多媒体文件的录制方法和装置
CN105120331B (zh) * 2015-08-21 2018-11-23 小米科技有限责任公司 处理直播音视频的方法及装置
CN105979347A (zh) * 2015-12-03 2016-09-28 乐视致新电子科技(天津)有限公司 一种视频的播放方法和装置
CN106899880B (zh) * 2015-12-19 2020-02-18 联芯科技有限公司 将多媒体数据分段保存的方法及系统
CN105869091B (zh) * 2016-05-12 2017-09-15 深圳市鹰硕技术有限公司 一种互联网教学过程中的数据校验方法
CN105847957A (zh) * 2016-05-27 2016-08-10 天脉聚源(北京)传媒科技有限公司 一种基于移动终端的现场直播方法及装置
CN106101742A (zh) * 2016-08-23 2016-11-09 北京汉博信息技术有限公司 一种用于信息化的可视化数据文件生成方法
CN106534104B (zh) * 2016-10-28 2019-07-05 北京数码视讯软件技术发展有限公司 频道录制方法及装置
CN107071509A (zh) * 2017-05-18 2017-08-18 北京大生在线科技有限公司 多路直播的视频精确同步方法
CN107197317A (zh) * 2017-06-06 2017-09-22 深圳市米亚印乐科技有限公司 局域网多路信号的直播方法和系统
CN107392983B (zh) * 2017-08-07 2020-12-08 东方联合动画有限公司 一种录制动画的方法及系统
CN107770529A (zh) * 2017-11-07 2018-03-06 万兴科技股份有限公司 一种录屏方法以及装置
CN107749964A (zh) * 2017-11-23 2018-03-02 兰州乐智教育科技有限责任公司 一种基于音视频边录边传技术的录制装置系统
CN110012251B (zh) * 2018-01-04 2022-05-20 腾讯科技(深圳)有限公司 视频录制方法、装置及可读存储介质
CN108712407B (zh) * 2018-05-08 2021-07-23 北京酷我科技有限公司 一种基于浏览器的音频/视频直播方法及其系统
CN108769721A (zh) * 2018-05-23 2018-11-06 福建掌搜科技有限公司 一种直播场景智能切换系统及其方法
CN109309871B (zh) * 2018-08-07 2019-05-28 贵州点点云数字技术有限公司 关键帧动作幅度检测系统
EP3618039B1 (en) * 2018-08-30 2023-02-15 Televic Education A system for recording an interpretation of a source media item
CN109089129B (zh) * 2018-09-05 2020-09-22 南京爱布谷网络科技有限公司 一种稳健的多视频捆绑直播系统及其方法
CN111246276A (zh) * 2018-11-28 2020-06-05 鸿合科技股份有限公司 一种远程课件播放方法及装置、电子设备
CN109600566A (zh) * 2018-12-03 2019-04-09 浙江工业大学 一种视频配音方法
CN109788221A (zh) * 2019-01-25 2019-05-21 新晨易捷(北京)科技有限公司 一种录播方法及装置
CN111757165B (zh) * 2019-03-28 2022-09-16 阿里巴巴集团控股有限公司 数据输出方法、数据处理方法、装置及设备
CN109905749B (zh) * 2019-04-11 2020-12-29 腾讯科技(深圳)有限公司 视频播放方法和装置、存储介质及电子装置
CN110602524B (zh) * 2019-08-19 2021-12-10 北京影谱科技股份有限公司 一种多路数字流同步方法、装置、系统及存储介质
CN110659571B (zh) * 2019-08-22 2023-09-15 杭州电子科技大学 一种基于帧缓存队列的流视频人脸检测加速方法
CN110650307A (zh) * 2019-10-30 2020-01-03 广州河东科技有限公司 基于qt的音视频推流方法、装置、设备及存储介质
CN110650308A (zh) * 2019-10-30 2020-01-03 广州河东科技有限公司 基于qt的音视频拉流方法、装置、设备及存储介质
CN111131868B (zh) * 2019-12-27 2022-01-14 国微集团(深圳)有限公司 基于播放器的视频录制方法及装置
CN111225235B (zh) * 2020-01-16 2020-12-04 北京合众美华教育投资有限公司 一种网络教学视频的播放方法
CN113709412B (zh) * 2020-05-21 2023-05-19 中国电信股份有限公司 直播流处理方法、装置和系统、计算机可读存储介质
CN111711800B (zh) * 2020-07-01 2022-01-28 苏州科达科技股份有限公司 拼接显示屏的图像处理方法、装置及存储介质
CN112073543B (zh) * 2020-11-16 2021-02-02 全时云商务服务股份有限公司 一种云视频录制方法、系统和可读存储介质
CN112653896B (zh) * 2020-11-24 2023-06-13 贝壳技术有限公司 带看助手的房源信息回放方法、装置、电子设备和介质
CN113038238B (zh) * 2021-03-22 2023-07-07 格兰菲智能科技有限公司 传输流数据码录制系统及传输流数据码录制方法
CN113329255A (zh) * 2021-06-02 2021-08-31 重庆锐明信息技术有限公司 一种基于浏览器的多通道视频同步播放方法、系统及介质
CN113784073A (zh) * 2021-09-28 2021-12-10 深圳万兴软件有限公司 一种录音录像声音和画面同步方法、装置及相关介质
CN115589450B (zh) * 2022-09-01 2024-04-05 荣耀终端有限公司 一种视频录制的方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0987904A2 (en) * 1998-08-31 2000-03-22 Lucent Technologies Inc. Method and apparatus for adaptive synchronization of digital video and audio playback
CN101022524A (zh) * 2006-02-14 2007-08-22 华为技术有限公司 一种通过h.248协议实现多媒体录制的方法及系统
CN101047524A (zh) * 2006-06-30 2007-10-03 华为技术有限公司 实现多媒体录制的方法及系统
CN101102204A (zh) * 2006-07-04 2008-01-09 华为技术有限公司 实现多媒体录放的方法及装置
CN101193311A (zh) * 2006-12-21 2008-06-04 腾讯科技(深圳)有限公司 一种p2p系统中音视频数据的同步方法
CN101833882A (zh) * 2009-03-13 2010-09-15 北京同步科技有限公司 一种用于教学的课程录制系统
CN102055949A (zh) * 2009-11-02 2011-05-11 华为终端有限公司 多媒体会议的录播方法、装置及系统、回播方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0987904A2 (en) * 1998-08-31 2000-03-22 Lucent Technologies Inc. Method and apparatus for adaptive synchronization of digital video and audio playback
CN101022524A (zh) * 2006-02-14 2007-08-22 华为技术有限公司 一种通过h.248协议实现多媒体录制的方法及系统
CN101160630A (zh) * 2006-02-14 2008-04-09 华为技术有限公司 一种实现多媒体录制的方法、系统及媒体资源处理设备
CN101047524A (zh) * 2006-06-30 2007-10-03 华为技术有限公司 实现多媒体录制的方法及系统
CN101102204A (zh) * 2006-07-04 2008-01-09 华为技术有限公司 实现多媒体录放的方法及装置
CN101193311A (zh) * 2006-12-21 2008-06-04 腾讯科技(深圳)有限公司 一种p2p系统中音视频数据的同步方法
CN101833882A (zh) * 2009-03-13 2010-09-15 北京同步科技有限公司 一种用于教学的课程录制系统
CN102055949A (zh) * 2009-11-02 2011-05-11 华为终端有限公司 多媒体会议的录播方法、装置及系统、回播方法及装置

Also Published As

Publication number Publication date
CN102821308A (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
CN102821308B (zh) 一种多场景流媒体课件录制与直播方法
CN101600107B (zh) 调整视频录像播放速度的方法、系统及装置
RU2652099C2 (ru) Устройство передачи, способ передачи, устройство приема и способ приема
CN104410807B (zh) 一种多路视频同步回放方法及装置
CN102640511B (zh) 视频信息再现方法和系统、以及视频信息内容
CN101202900B (zh) 一种数字电视直播与回放的切换方法及视频服务器
CN100535959C (zh) 基于网络的多种媒体实时同步教学系统
CN102859933B (zh) 用于提供特技播放服务的方法和装置
US9281011B2 (en) System and methods for encoding live multimedia content with synchronized audio data
KR100972792B1 (ko) 스테레오스코픽 영상을 동기화하는 장치 및 방법과 이를 이용한 스테레오스코픽 영상 제공 장치 및 방법
KR101777908B1 (ko) 코딩된 비디오 프레임들의 시퀀스를 처리하는 방법
CN104754366A (zh) 音视频文件直播方法、装置和系统
CN103329551A (zh) 接收多个实时传输流的接收装置及其发送装置以及多媒体内容再现方法
CN107251562A (zh) 低等待时间视频流化
CN1411280A (zh) 一种制作和发送及接收广播式准视频点播节目的装置
RU2005134850A (ru) Устройство воспроизведения мультимедийных данных, способ приема аудиоданных и структура аудиоданных в них
TW201246930A (en) Transmission device, transmission method, receiving device, receiving method, program, and broadcasting system
CN103873888A (zh) 一种媒体文件直播方法及直播源服务器
CN104038844A (zh) 一种基于mpeg-2标准的移动直播系统
CN103718563A (zh) 接收装置及其接收方法
CN100586176C (zh) 用于视频同步的设备和方法
CN102724559A (zh) 一种音视频编码同步方法和系统
CN102625193B (zh) 一种借助辅助文件实现多媒体文件网络播放的方法
CN103458271A (zh) 音视频文件拼接方法和装置
US9426506B2 (en) Apparatuses for providing and receiving augmented broadcasting service in hybrid broadcasting environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant