srs录制视频时间戳有点问题
srs2或者srs3目前最新的版本和之前的版本,使用dvr功能录制flv文件。
使用本地播放器,如ffplay、potplayer、vlc、KMP和MPV等,都是正常的播放完整视频。
但是使用web flash播放器,都会遇到一个问题,对于大多数录制发flv文件,最后几秒钟播放不出来。
我测试过flv.js、video.js、cyberplayer、dplayer、flowplayer、jwplayer、neplayer、strobe、sewise、网易、百度等,
外加我自己用as3.0写的flash 播放器等诸多方案,都是播放不完整。
但是经过flvmeta -U或者-k修复后,基本上都可以完整播放了。由此推测是flv metadata信息和播放器不兼容。
用flv header分析工具查看,看起来没啥问题。比较困惑。
同样遇到问题的,还有srs群里的其他开发者:

在srs的issue里面也提到了这个问题:

但是今天遇到一个web播放器却可以完整播放-cuplayer
看代码也是video.js改版而来。有机会研究一下看看。

http://www.cuplayer.com/cuplayer/help/Help410.html
同一个文件,修复前:
$flvmeta -r bad.flv
{
'width':
'height':
'videodatarate':
'framerate':
'audiodatarate':
'audiosamplerate':
'audiosamplesize':
'stereo': false
'author': 'Jeffer'
'service': 'SRS/2.0.247(ZhouGuowen)'
'filesize':
'duration': 15.518
}
修复后:
$ flvmeta -r good.flv
{
'hasMetadata' => true
'hasVideo' => true
'hasAudio' => true
'duration' => 15.619
'lasttimestamp' => 15.518
'lastkeyframetimestamp' => 15.159
'width' =>
'height' =>
'videodatarate' => 376.225470581
'framerate' => 24.6494653947
'audiodatarate' => 62.1023473014
'audiosamplerate' =>
'audiosamplesize' =>
'stereo' => false
'filesize' =>
'videosize' =>
'audiosize' =>
'datasize' =>
'metadatacreator' => 'flvmeta 1.2.1'
'metadatadate' => Fri, Dec :: +
'audiocodecid' =>
'videocodecid' =>
'audiodelay' =>
'canSeekToEnd' => false
'hasCuePoints' => false
'cuePoints' => [
]
'hasKeyframes' => true
'keyframes' => {
'times': [ 0.079
0.676
1.324
1.925
2.522
3.113
3.78
4.361
4.957
5.557
6.162
6.766
7.359
7.964
8.572
9.163
9.778
10.379
10.977
11.579
12.165
12.775
13.354
13.963
14.56
15.159
]
'filepositions': [ ]
}
}
srs录制视频时间戳有点问题的更多相关文章
- bandicam如何录制视频
我们一般都很熟悉这类软件:屏幕录制专家和kk录制等,这些都是国内比较优秀的作品.不过exe的封装格式以及录制的清晰度让人很纠结.所以这里要为大家分享的是一款韩国人写录制软件Bandicam.Bandi ...
- Android手机录制视频 实时传输(转载)
最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...
- 【Android】 Android实现录音、播音、录制视频功能
智能手机操作系统IOS与Android平分天下(PS:WP与其他的直接无视了),而Android的免费招来了一大堆厂商分分向Android示好,故Android可能会有“较好”的前景. Android ...
- iOS AVCaptureVideoDataOutputSampleBufferDelegate 录制视频
iOS AVCaptureVideoDataOutputSampleBufferDelegate 录制视频 应用场景: 使用AVFoundation提供的API, 我们可以从 AVCaptureVid ...
- 使用MediaRecorder录制视频短片
MediaRecorder除了可用于录制音频之外,还可用于录制视频,使用MediaRecorder录制视频与录制音频的步骤基本相同.只是录制视频时不仅需要采集声音,还需要采集图像.为了让MediaRe ...
- iOS 三种录制视频方式
随着每一代 iPhone 处理能力和相机硬件配置的提高,使用它来捕获视频也变得更加有意思.它们小巧,轻便,低调,而且与专业摄像机之间的差距已经变得非常小,小到在某些情况下,iPhone 可以真正替代它 ...
- android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好
public void startRecord() { mediarecorder = new MediaRecorder();// 创建mediarecorder对象 mCamera = getCa ...
- 转:android 录制视频的Demo
转:http://blog.csdn.net/peijiangping1989/article/details/7049991 在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. ...
- Android使用的开发MediaRecorder录制视频
MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用Medi ...
随机推荐
- 【转】MEAN:Nodejs+express+angularjs+mongodb搭建前端项目框架NJBlog
http://www.cnblogs.com/mz121star/archive/2013/03/13/njblog.html 项目地址:https://github.com/mz121star/ ...
- c#学习之路---壁咚漏洞搜索
每次出漏洞都会用JAVA去写,不过JAVA你懂得,写GUI每次画图很吃力. 于是左右学习了下c#,期间也得到表哥storm7kb的帮助,要不然这个表格与数据绑定不知道c#怎么弄. 上一下图吧: --- ...
- oracle connect by用法篇 (包括树遍历)之二
3.2查询当前时间往前的12周的开始时间.结束时间.第多少周 , ) - (rownum ) as startDate, sysdate , 'd'))) - (rownum ) as endDate ...
- LNMP 1.3 测试php解析
测试解析LNMP的php解析 先打开nginx的配置文件 vim /usr/local/nginx/conf/nginx.conf location ~ \.php$ { root html; fas ...
- Mysql Hive 通用的行列转换
就是简单的一个字符串拼接,意义和所用场景自己体会下 insert into table agent_library1 select concat_ws(':',collect_set(name)) a ...
- php 关于锁的一些看法
背景:在一个项目中,需要一次对数据很复杂的计算,其中一次计算需要花费大概30秒钟时间,大概需要查询一个比较大的表300次左右,然后还需要进行查询7-8次数据库,然后进行组合排序等功能,完成最终结果.对 ...
- DB2--sql计算时间差和格式化时间
格式化时间 db2 格式化时间使用的 TO_CHAR(TIMESTAMP('2017-10-24 21:18:12'),'YYYY-MM-DD'): 测试sql:SELECT TO_CHAR(TIME ...
- Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能
/**-------------------------------------------------代码区--------------------------------------------- ...
- [转]CSS块级元素和行内元素
原地址:http://www.studyofnet.com/news/398.html 本文导读:HTML中的元素可分为两种类型:块级元素和行级元素.这些元素的类型是通过文档类型定义(DTD)来指明. ...
- php学习笔记-多维数组
多维数组就是有一个数组,它里面的每个元素又是一个数组. <?php $stuff =array('food'=>array('apple','orange'),'book'=>arr ...