【问题标题】:How to encode a series of .dpx files using X264如何使用 X264 对一系列 .dpx 文件进行编码
【发布时间】:2023-03-31 00:26:01
【问题描述】:

我是视频编码的新手。我正在尝试将一系列 .dpx 文件编码为以下任何格式的单个编码视频 O/P 文件。 (.mp4、.avi、.h264、.mkv 等)

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

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

然后

x264 --crf 28 --profile baseline -o encoded.mp4 --input-res 1920x1080 --demuxer raw 
output.dpx

我还尝试使用 ffmpeg 对级联文件进行如下编码

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

这也给了我一个空白视频。

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

谢谢。

【问题讨论】:

    标签: encoding ffmpeg h.264 x264 libx264


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 2012-10-04
      • 1970-01-01
      • 2017-10-24
      • 2020-10-28
      • 2014-12-08
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      相关资源
      最近更新 更多