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 ...
随机推荐
- leetcode Single Number II - 位运算处理数组中的数
题目描述: 给定一个包含n个整数的数组,除了一个数出现一次外所有的整数均出现三次,找出这个只出现一次的整数. 题目来源: http://oj.leetcode.com/problems/single- ...
- VxVM vxsnap ERROR V-5-1-0 Volume cannot be linked due to size/regionsize incompatibility
在做vxsnap addmir时报错如下: #> vxsnap -g OLS_DATA_DG -b addmir OLS_DATA_ACC_P mirvol=OLS_DATA_ACC_SM1 V ...
- java 多线程系列基础篇(二)
概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...
- VotingClassifier
scores : array of float, shape=(len(list(cv)),) Array of scores of the estimator for each run of the ...
- LAMP 3.5 mysql备份与恢复
备份库的命令 mysqldump -uroot -pwangshaojun discuz > /data/discuz.sql 指定用户密码,重定向到某文件 恢复 mysql -uroot -p ...
- python爬虫(10)--PyQuery的用法
简介 pyquery 可让你用 jQuery 的语法来对 xml 进行操作.这I和 jQuery 十分类似.如果利用 lxml,pyquery 对 xml 和 html 的处理将更快. 初始化 在这里 ...
- madplay的使用方法
管理madplay的主程序,包括播放,暂停播放,恢复播放,停止播放 system("madplay north.mp3 &");//利用system函数调用madplay播 ...
- css背景图片位置:background的position(转)
css背景图片位置:background的position position的两个参数:水平方向的位置,垂直方向的位置----------该位置是指背景图片相对于前景对象的 1.backgroun ...
- Codeforces 1108E (Array and Segments) 线段树
题意:给你一个长度为n的序列和m组区间操作,每组区间操作可以把区间[l, r]中的数字都-1,请选择一些操作(可以都不选),使得序列的最大值和最小值的差值尽量的大. 思路:容易发现如果最大值和最小值都 ...
- final 子类禁止重写
<?php //子类中编写和父类中完全一样的函数,是对父类中的函数进行重写 class BaseClass{ public function test() { echo "BaseCl ...