我一直在使用FFmpeg将单帧提取到图像中.虽然有一些谷歌搜索,但事实证明:
ffmpeg.exe -i video.avi -ss 00:30:00 -y -an -vframes 1 test.png
Run Code Online (Sandbox Code Playgroud)
...运行速度明显慢于以下速度,几乎完全相同,但瞬间:
ffmpeg.exe -ss 00:30:00 -i video.avi -y -an -vframes 1 test.png
Run Code Online (Sandbox Code Playgroud)
唯一的区别是-i和-ss的顺序.这是故意的"功能"吗?这有什么区别的技术原因吗?
这是一个有根据的猜测.当-ss发生之前-i,它被视为输入的指令,因此视频流的第一帧是30秒的帧.当-ss发生之后-i,它被视为效果,并且读取和删除前30秒的帧,从而导致性能差异.
wberry的答案确实是一个受过良好教育的答案.阅读文档可以进一步帮助:
'-ss position(输入/输出)'
当用作输入选项(在-i之前)时,在此输入文件中寻找位置.当用作输出选项(在输出文件名之前)时,解码但丢弃输入,直到时间戳到达位置.这比较慢,但更准确.
(位置可以是秒或hh:mm:ss [.xxx]形式.)
我正在编写一个音频采集应用程序,因此,我使用的是更慢但更准确的方法.您可以选择最佳方法.
| 归档时间: |
|
| 查看次数: |
4463 次 |
| 最近记录: |