使用 ffmpeg 管道将 rawvideo rgb24 转换为 cfhd 和 prores 时产生的伪影

使用 ffmpeg 管道将 rawvideo rgb24 转换为 cfhd 和 prores 时产生的伪影

cfhd 或 prores 转换帧

原始帧

我正在将 rgb24 视频传输到 ffmpeg 并编码视频。我对 h.264、h.265 或 dnxhd 没有任何问题。使用 ProRes 和 cineform 时,我得到了非常奇怪的伪影。似乎 ffmpeg(或至少 cfhd 和 ProRes 编码器)忽略了 rgb24 并假设 yuv 或/和平面数据。

ffmpeg  -y -f rawvideo -vcodec rawvideo -pix_fmt  rgb24  -s 1280x720 -r 24 -i /tmp/LRVideo  -thread_queue_size 4096 -i Untitled4.wav  -c:v cfhd -quality 10 -pix_fmt yuv422p10le -c:a pcm_s16le -ar 48000 -map 0:v:0 -map 1:a:0  Untitled4.mov

并且 ffmpeg 消息表明

Input #0, rawvideo, from '/tmp/LRVideo':
  Duration: N/A, start: 0.000000, bitrate: 530841 kb/s
  Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 1280x720, 530841 kb/s, 24 tbr, 24 tbn, 24 tbc
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, wav, from 'Untitled4.wav':
  Metadata:
    encoder         : Lavf58.76.100
  Duration: 00:00:52.21, bitrate: 1536 kb/s
  Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> cfhd (native))
  Stream #1:0 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[mov @ 0x7fecc9051e00] Using MS style video codec tag, the file may be unplayable!
Output #0, mov, to 'Untitled4.mov':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: cfhd, yuv422p10le(tv, progressive), 1280x720, q=2-31, 200 kb/s, 24 fps, 12288 tbn
    Metadata:
      encoder         : Lavc58.134.100 cfhd
  Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      encoder         : Lavc58.134.100 pcm_s16le

答案1

这个答案对于所有使用 ffmpeg 管道的人来说都很重要。当RGB24 RGB 图像或者参数通过管道提供给 ffmpeg,就会出现这些问题。将输入更改为RGB48 RGB 图像或者RGB64 RGB 图像消除了这个问题。

使用RGB48 RGB 图像RGB64 RGB 图像不会导致各种预设出现问题。

该命令运行完美。

ffmpeg  -y -f rawvideo -vcodec rawvideo -pix_fmt  rgb48  -s 1280x720 -r 24 -i /tmp/LRVideo  -thread_queue_size 4096 -i Untitled4.wav  -c:v cfhd -quality 10 -pix_fmt yuv422p10le -c:a pcm_s16le -ar 48000 -map 0:v:0 -map 1:a:0  Untitled4.mov

相关内容