如何将实时图片编码为视频?
本帖最后由 morris 于 2020-8-6 20:35 编辑动态输入一张一张的图片, 需要 ffmpeg 根据实际接收到的时间编码为视频, 而不是固定帧率生成视频.
比如:
1. 如果图片是 1 秒 1 张, 那么生成的视频帧率就是 1;
2. 如果图片是 1 秒 2 张, 那么生成的视频帧率就是 2;
事先并不知道每秒会收到多少张图片.
怎么做呢?
https://video.stackexchange.com/a/25813/23762
这个是以文件的 mtime 作为时间, 比较接近我的使用场景, 但还是有点差别, 我这视频是实时接收的, 而不是文件列表, 相当于文件列表是动态的. 这个比较有难度,没搞过变帧率的 如果没有别的办法, 可能得定时(0.5s) 出一张图, 没新的就用上一张, 这样生成固定帧率 2 的视频.
还一个想法是, 既然可以 ts_from_file, 那么如果使用 concat 生成动态的列表文件, 然后再 ts_from_file 按说是可以实现的. 大师兄有时间麻烦再帮忙看一看另一个帖子的问题吧, http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=4829#lastpost
视频是一个网络摄像机出的, 用了 vlc mpv ffplay 播放都不流畅, 帧率在 13 帧左右, 但播放器应该都是按 25 帧播的, 导致视频一卡一卡的. 但是用厂家的播放器以及另一个私有的播放器播放是可以流畅的(不检查帧率, 因为是实时流, 所以是每解码一帧就直接显示一帧). morris 发表于 2020-8-8 11:09
如果没有别的办法, 可能得定时(0.5s) 出一张图, 没新的就用上一张, 这样生成固定帧率 2 的视频.
还一个想 ...
可以实现,但是可能会引起各种不适感的问题 孙悟空 发表于 2020-8-8 11:38
可以实现,但是可能会引起各种不适感的问题
多谢大师兄.
这个不适感主要是和 ffmpeg 哪些开发习惯不符还是什么? 可否在稍微具体举个例子, 避免后面再踩了坑:L morris 发表于 2020-8-8 12:11
多谢大师兄.
这个不适感主要是和 ffmpeg 哪些开发习惯不符还是什么? 可否在稍微具体举个例子, 避免后面 ...
前面是15fps,后面是30fps,突然又来一个5fps,如果做成文件,可能需要频繁的刷新pps sps了,要不挺难受的 多谢大师兄, 后面确实也需要存了再进行回放.
页:
[1]