bililive-go
bililive-go copied to clipboard
设置use_native_flv_parser为true后,视频时长错误
https://github.com/hr3lxphr6j/bililive-go/blob/master/config.yml#L8
把这个打开,视频时长错误,原本是一个小时的,多款播放器(包括potplayer,VLC等)都是识别到只有27:54
,只有用小丸工具箱检测有一个小时,播放器会在27:54
后继续播放,直至结束。
ffmpeg -i input.flv -c copy output.mp4
重封装下
我用小丸工具箱就能重新封装了,但总没有你那边能直接在程序里解决方便,大佬看看要怎么优化一下呗
https://gist.github.com/hr3lxphr6j/827060b7f0ceedad829da11694dcbccc 搞个cronjob
按我的理解,应该是文件头的时长定义出错了,那么用ffmpeg
读出正确的时长,再修改文件头的时长就OK了,或者直接用ffmpeg封装一下。不过说起来简单做起来难,大佬看看这种思路好不好做,不好弄的话,我就自己重新封装吧。
另外,我看use_native_flv_parser为false时是没问题的,是不是可以借鉴一下这种情况下的处理方法呢,目前只是因为视频分辨率切换的问题,只能改为true
- 花屏的原因是avc的 SPS 和 PPS 变了,ffmpeg(
use_native_flv_parser=faLse
)不处理这个变化,导致花屏,use_native_flv_parser=true
时候是我自己实现的flv解析器,在遇到第二个SPS和PPS回重新录制。 - flv这个格式正常情况没有索引所以总时长不正确,也无法索引,重新封装成mp4的时候会创建索引,就能正常播放了
那是否可以,在使用ffmpeg的同时,也是用你自己实现的flv解析器,但是你的flv解析器不做录制的工作,只做监听,发现 SPS 和 PPS 变了,就重启ffmpeg的录制。是不是就既能解决花屏的问题,也能解决视频时长的问题了?
那是否可以,在使用ffmpeg的同时,也是用你自己实现的flv解析器,但是你的flv解析器不做录制的工作,只做监听,发现 SPS 和 PPS 变了,就重启ffmpeg的录制。是不是就既能解决花屏的问题,也能解决视频时长的问题了?
太麻烦了。。
好吧,或者等有空的时候再弄一下吧,毕竟你这边的项目做的还是挺不错的,如果实在难搞,就把Issue关了吧
那是否可以,在使用ffmpeg的同时,也是用你自己实现的flv解析器,但是你的flv解析器不做录制的工作,只做监听,发现 SPS 和 PPS 变了,就重启ffmpeg的录制。是不是就既能解决花屏的问题,也能解决视频时长的问题了?
太麻烦了。。
有时间更个新版吧 有好多分支被提交了 看下顺带改改小问题 发布一个新版哈
最近更新了 v0.6.5 ,包含了目前最新的 master branch,欢迎使用~