将视频文件转换为等长的图像序列?

3

如何使用FFMPEG将视频文件转换为与原始视频文件持续时间/帧数相等的图像序列?

我正在尝试将视频导入Linux上的非商业版本Nuke,它拒绝接受h.264并且没有一个可以找到的可接受编解码器列表...但可以处理图像序列...但我无法使音频与图像序列对齐。

我尝试使用以下命令查看帧速率:

ffprobe -v 0 -of compact=p=0 -select_streams 0 -show_entries stream=r_frame_rate Forest.mp4 

这将返回:

r_frame_rate=30/1

然后我运行。
ffmpeg -i Forest.mp4 -r 30/1 forest/jpegs%06d.jpg
2个回答

4
假设您的视频是恒定帧率的(平均帧率应与r_frame_rate相同),请使用:
ffmpeg -i Forest.mp4 -vsync 0 forest/jpegs%06d.jpg

2
NUKE非商业版在以下方面受到功能限制:
- 输出分辨率限制为高清(1920 x 1080)。
- 对于MPEG4和H264,2D格式支持被禁用。
- 等等...
点击NUKE 10.5 NC functional restrictions查看更多信息。
因此,您应该按照以下步骤制作图像序列:
ffmpeg -i Forest.mp4 image%04d.tif

不要忘记在NUKE项目设置中设置帧速率(fps=30)。


我认为没有必要进行两次操作,使用“-crf”一次操作就足够了。 - llogan
如果应用程序接受MP4,则我认为没有理由进行任何转码。 - Gyan
@Mulvya,MP4不适合在Nuke中使用有两个原因:它每个通道只有8位(不利于颜色校正和分级),而且与图像序列相比,MP4视频回放和合成速度较慢。 - Andy Jazz
好的,但是原帖已经有了一个H.264流。除非在编译时设置了libx264为10位,否则您的命令将转码为另一个8位H.264流(强制为2 mbps)。这增加了一次世代损失。容器(MP4)并不重要。 - Gyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接