ffmpeg将一个png转换为DNxHD

时间:2019-03-15 12:18:54

标签: ffmpeg

我正在尝试从一个PNG文件创建DNxHD文件。使用dnxhd编解码器,输出应为“ 24000/1001” fps,1920x1080。每个框架都应该相同。输出的流长度必须为20秒。

我有一个解决方案,该解决方案使用filter_complex来循环每一帧的PNG,但是这会导致文件过大。鉴于我可能会将数百个DNxHD文件合并为一个AAF文件,因此输出文件的大小太大。

我可以在下面的命令上进行任何改进以减少文件大小吗?

ffmpeg -i INFILE.png -y -nostdin -an -vcodec dnxhd -pix_fmt yuv422p -vb 36M -framerate 24000/1001 -filter_complex loop=479:1:0 OUFILE.dnxhd

我不太了解ffmpeg,此命令是通过复制我在网上找到的部分命令而构建的。

1 个答案:

答案 0 :(得分:-1)

DNxHD是帧内编码的编解码器,即每个帧彼此独立地进行编码(因此可解码)。因此,如果不更改比特率等速率控制参数,就无法减小大小。

顺便说一句,您的命令可以简化为

ffmpeg -framerate 24000/1001 -loop 1 -t 20 -i IN.png -c:v dnxhd -pix_fmt yuv422p -b:v 36M OUT.dnxhd

保存到原始流(.dnxhd)时

framerate没有任何意义;仅当保存到.mov之类的容器时。从技术上讲,可以仅用两个帧构造一个MOV文件,而使用第二个帧构造一个MOV文件,其时间戳向前20秒,但是不确定您的工作流是否会按需处理此类文件。