我正在捕获实时流并通过调整输入输出帧速率来生成加速输出:
ffmpeg -r 1000 -i rtsp://url -r 60 -y output.mp4
这将按预期生成加速的视频。
现在我只想捕捉最初的 10 分钟输入溪流。
因此我尝试-t 600
在输入前加上:
ffmpeg -t 600 -r 1000 -i rtsp://url -r 60 -y output.mp4
但这会产生 10 分钟输出。
由于这是一段(相当)加速的视频,10分钟输入我希望输出成为~<1 分钟。
输入流是可变帧速率的,所以我不确定输出的确切持续时间。
我究竟做错了什么?
在输入之前不
-t 600
告诉 ffmpeg 只占用 10 分钟输入?-t duration
(输入输出)- 当用作输入选项(于我之前),
- 限制从输入文件读取的数据的持续时间。
- 例如
ffmpeg
-t 5
-i input.mp3 testAsInput.mp3
- 5秒后自动停止书写
- 当用作输入选项(于我之前),
操纵帧速率是否会以某种方式干扰上述操作?
还有其他方法可以告诉 ffmpeg 仅花费 10 分钟的输入(同时仍加快输出速度)吗?
答案1
啊,我应该使用setpts
滤镜而不是弄乱帧速率。这有效:
ffmpeg -i rtsp://url -vf="setpts=PTS/100" -r 60 -y output.mp4