FFMpeg - не удается создать файлы DnxHR в Rec2020 / 4: 4: 4 Выборка цветности - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь преобразовать последовательность изображений в Quicktime DnxHR с выборкой 4: 4: 4 в цветовом пространстве Rec2020 с использованием FFMpeg 4.1.3. Но я всегда заканчиваю 4: 2: 0 файлом Rec709.

В моей последней попытке FFMpeg кажется правильным:

ffmpeg.exe -y -i "C:/TEST/final-%04d.dpx" -c:v dnxhd -vf "scale=3840:2160,fps=24,format=yuv444p12le" -profile:v dnxhr_444 -color_primaries 9 -colorspace 9 -color_range 2 C:/TEST/test.mov

Во время кодирования выходной поток отображается как 444 / bt2020

Output #0, mov, to 'C:/TEST/test.mov':
  Metadata:
  encoder         : Lavf58.20.100
  Stream #0:0: Video: dnxhd (DNXHR 444) (AVdh / 0x68645641), yuv444p10le(pc, bt2020nc/bt2020/unknown), 3840x2160, q=2-1024, 200 kb/s, 24 fps, 12288 tbn, 24 tbc
  Metadata:
    encoder         : Lavc58.35.100 dnxhd
  frame=   10 fps=3.3 q=1.0 Lsize=   71161kB time=00:00:00.37 
  bitrate=1554195.5kbits/s speed=0.122x
  video:71160kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001114%

Но когда я проверяю выходной файл, FFMpeg говорит, что он находится в bt709

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:/TEST/test.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf58.20.100
  Duration: 00:00:00.42, start: 0.000000, bitrate: 1397959 kb/s
    Stream #0:0(eng): Video: dnxhd (DNXHR 444) (AVdh / 0x68645641), 
yuv444p10le(pc, bt709/unknown/unknown), 3840x2160, 1399062 kb/s, 24 fps, 24 tbr, 12288 tbn, 12288 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc58.35.100 dnxhd

А такие программы, как MediaInfo, говорят, что выборка цветности в 4.2.0

Есть идеи?

Как просят в комментарии, полный журнал конвертации:

C:\Users\pierrech>ffmpeg.exe -y -i "C:/TEST/final-%04d.dpx" -c:v dnxhd -vf colorspace=all=bt2020:iall=bt2020 -profile:v dnxhr_444 -color_primaries bt2020 -colorspace bt2020_ncl -color_range 2 -color_trc bt2020_12bit C:/TEST/test.mov
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.3.1 (GCC) 20190414
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, image2, from 'C:/TEST/final-%04d.dpx':
  Duration: 00:00:00.40, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: dpx, rgb48le, 3840x2160, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (dpx (native) -> dnxhd (native))
Press [q] to stop, [?] for help
Output #0, mov, to 'C:/TEST/test.mov':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: dnxhd (DNXHR 444) (AVdh / 0x68645641), yuv444p10le(pc, bt2020nc/bt2020/bt2020-12), 3840x2160, q=2-1024, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.35.100 dnxhd
frame=   10 fps=3.8 q=1.0 Lsize=   71161kB time=00:00:00.36 bitrate=1618952.6kbits/s speed=0.136x
video:71160kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001114%

А после конвертации

C:\Users\pierrech>ffmpeg.exe  -i C:\TEST\test.mov -hide_banner
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\TEST\test.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf58.20.100
  Duration: 00:00:00.40, start: 0.000000, bitrate: 1457373 kb/s
    Stream #0:0(eng): Video: dnxhd (DNXHR 444) (AVdh / 0x68645641), yuv444p10le(pc, bt709/unknown/unknown), 3840x2160, 1457356 kb/s, 25 fps, 25 tbr, 12800 tbn, 12800 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc58.35.100 dnxhd
At least one output file must be specified
...