ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13604|回复: 8

[Linux] 如何将实时图片编码为视频?

[复制链接]
发表于 2020-8-6 20:34:32 | 显示全部楼层 |阅读模式
本帖最后由 morris 于 2020-8-6 20:35 编辑

动态输入一张一张的图片, 需要 ffmpeg 根据实际接收到的时间编码为视频, 而不是固定帧率生成视频.
比如:
1. 如果图片是 1 秒 1 张, 那么生成的视频帧率就是 1;
2. 如果图片是 1 秒 2 张, 那么生成的视频帧率就是 2;

事先并不知道每秒会收到多少张图片.

怎么做呢?

回复

使用道具 举报

 楼主| 发表于 2020-8-7 18:02:10 | 显示全部楼层
https://video.stackexchange.com/a/25813/23762

这个是以文件的 mtime 作为时间, 比较接近我的使用场景, 但还是有点差别, 我这视频是实时接收的, 而不是文件列表, 相当于文件列表是动态的.
回复 支持 反对

使用道具 举报

发表于 2020-8-8 08:46:49 | 显示全部楼层
这个比较有难度,没搞过变帧率的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-8 11:09:11 | 显示全部楼层
如果没有别的办法, 可能得定时(0.5s) 出一张图, 没新的就用上一张, 这样生成固定帧率 2 的视频.

还一个想法是, 既然可以 ts_from_file, 那么如果使用 concat 生成动态的列表文件, 然后再 ts_from_file 按说是可以实现的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-8 11:14:05 | 显示全部楼层
大师兄有时间麻烦再帮忙看一看另一个帖子的问题吧, http://bbs.chinaffmpeg.com/forum ... p;tid=4829#lastpost

视频是一个网络摄像机出的, 用了 vlc mpv ffplay 播放都不流畅, 帧率在 13 帧左右, 但播放器应该都是按 25 帧播的, 导致视频一卡一卡的. 但是用厂家的播放器以及另一个私有的播放器播放是可以流畅的(不检查帧率, 因为是实时流, 所以是每解码一帧就直接显示一帧).
回复 支持 反对

使用道具 举报

发表于 2020-8-8 11:38:27 | 显示全部楼层
morris 发表于 2020-8-8 11:09
如果没有别的办法, 可能得定时(0.5s) 出一张图, 没新的就用上一张, 这样生成固定帧率 2 的视频.

还一个想 ...

可以实现,但是可能会引起各种不适感的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-8 12:11:46 | 显示全部楼层
孙悟空 发表于 2020-8-8 11:38
可以实现,但是可能会引起各种不适感的问题

多谢大师兄.

这个不适感主要是和 ffmpeg 哪些开发习惯不符还是什么? 可否在稍微具体举个例子, 避免后面再踩了坑
回复 支持 反对

使用道具 举报

发表于 2020-8-8 12:17:16 | 显示全部楼层
morris 发表于 2020-8-8 12:11
多谢大师兄.

这个不适感主要是和 ffmpeg 哪些开发习惯不符还是什么? 可否在稍微具体举个例子, 避免后面 ...

前面是15fps,后面是30fps,突然又来一个5fps,如果做成文件,可能需要频繁的刷新pps sps了,要不挺难受的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-8 12:39:30 | 显示全部楼层
多谢大师兄, 后面确实也需要存了再进行回放.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-12-27 12:35 , Processed in 0.063502 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表