Encoding 如何使用X264对一系列.dpx文件进行编码

Encoding 如何使用X264对一系列.dpx文件进行编码,encoding,ffmpeg,h.264,x264,libx264,Encoding,Ffmpeg,H.264,X264,Libx264,我完全是视频编码的新手。我正在尝试将一系列.dpx文件编码为一个单独的编码视频O/P文件,格式如下:。mp4、.avi、.h264、.mkv等 我尝试了两种不同的方法。第一个有效,第二个无效。 我想知道两者的区别。如有任何帮助/意见,将不胜感激 1使用FFMPEG和x264库,效果良好。我能生产出所需的产品 ffmpeg -start_number 0 -i frame%4d.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 -profile:v baseli

我完全是视频编码的新手。我正在尝试将一系列.dpx文件编码为一个单独的编码视频O/P文件,格式如下:。mp4、.avi、.h264、.mkv等

我尝试了两种不同的方法。第一个有效,第二个无效。 我想知道两者的区别。如有任何帮助/意见,将不胜感激

1使用FFMPEG和x264库,效果良好。我能生产出所需的产品

ffmpeg -start_number 0 -i frame%4d.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 
-profile:v baseline fromdpx.h264
2我首先尝试使用ffmpeg中的concate协议将所有dpx文件连接到单个文件中,然后使用x264对连接的文件进行编码。 在这里,我看到连接文件的大小是所有连接文件的总和。但是,当我使用x264命令对连接的文件进行编码时,我得到的是一个绿色屏幕,基本上不是期望的输出

ffmpeg -i "concat:frame0.dpx|frame01.dpx|frame2.dpx etc" -c copy output.dpx
然后

我还尝试使用ffmpeg对连接的文件进行编码,如下所示

ffmpeg -i output.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 -profile:v baseline fromdpx.h264
这也给了我一个空白的视频

有人能告诉我这里发生了什么事吗?为什么第一种方法有效而第二种方法无效


谢谢。

在第二种方法中,您将DPX文件指定为x264-demuxer raw的原始输入,但DPX不是原始格式,它更像一个容器,具有头、元数据和可选的RLE压缩,因此需要解码。x264仅支持此原始格式-输入csp:i420、yv12、nv12、i422、yv16、nv16、i444、yv24、bgr、bgra、rgb。所有这些格式可以有8..16位每个组件-输入深度

我也怀疑DPX格式是否支持压缩,因为它是图像格式而不是视频格式。所以可能你的结果在concat被破坏之后

ffmpeg -i output.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 -profile:v baseline fromdpx.h264