web flash推流录制测试研究

用flash as3写了一段推流测试demo,参考srs_publisher和simplest_as3_rtmp_streamer。
推流到srs2服务器,录制为flv文件。
测试一轮结果如下:

Web Flash推上来的流,经过srs录制为flv。
srs设置jitter_time full; dvr_plan segment; dvr_duration 180; 实际录制180s。
flowplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
jwplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
sewiseplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 seek功能可后期添加。
strobe 可以播放服务器flv文件 有声音有视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
srs设置jitter_time zero;貌似也可以,笔记本测试过。

srs设置jitter_time off; dvr_plan session;
flowplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
jwplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
sewiseplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
strobe 可以播放服务器flv文件 有声音有视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。

srs设置jitter_time zero; dvr_plan session;
flowplayer 可以播放服务器flv文件 有声音没视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
jwplayer 可以播放服务器flv文件 有声音有视频 长宽比不对 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
sewiseplayer 可以播放服务器flv文件 有声音有视频 有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。
strobe 可以播放服务器flv文件 有声音有视频 没有时间标签 不支持seek。(ffmpeg,yamdi,flvmeta) 修复meta后 正常播放 有时间标签 支持seek。

一段时间以来都没有解决这个问题,以为就是这样的。也和网友讨论过这个问题,被当做srs feature处理了。
这几天研究录制的文件,发现录制的flv和其他平台录制的flv格式不太一样。
使用FlvParse分析一下录制flv文件的结构,发现:
经过ffmpeg转化的flv,有字段onMetaData,而web flash推流录制发flv没有。

  

经过查找接口,发现as3也有onMetaData接口,我并未调用。添加如下代码解决:

 1 // add metaData for stream
 2     var metaData:Object = new Object();
 3     metaData.title = "SptCallCenter";
 4     metaData.author = "Jeffer";
 5 metaData.width = av_hd_width;
 6     metaData.height = av_hd_height;
 7     metaData.videodatarate = av_hd_Vbitrate/1000;
 8     metaData.framerate = av_hd_fps;
 9 //send metadata
10     metaData.videocodecid = 7;
11     metaData.audiosamplerate = 16000;
12     metaData.audiocodecid = 4;
13     media_stream.send("@setDataFrame", "onMetaData", metaData); 

 

转载于:https://www.cnblogs.com/zzugyl/p/8862766.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值