Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 6th August 2022, 18:16   #1  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
How to encode DNxHD 100i with ffmpeg?

I assumed:
Code:
ffmpeg -y -noautorotate -nostdin -threads 8 -ignore_editlist true -flags +ildct+ilme -top 0 -i "C:\Users\Selur\Desktop\input.mov" -map 0:0 -an -sn -vcodec dnxhd -profile:v 0 -b:v 100M -vf scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff -pix_fmt yuv422p -vsync 0  -sws_flags spline -mbd 2 -flags +ildct+ilme -top 0 "E:\Output\test.mov"
should work, but it returns:
Code:
[dnxhd @ 00000182e21c0e00] Profile selected is experimental
[dnxhd @ 00000182e21c0e00] video parameters incompatible with DNxHD. Valid DNxHD profiles:
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 115Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 240Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 290Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 220Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080i; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080i; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p10
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 110Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 60Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 75Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1280x720p; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 36Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 45Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 75Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 90Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 350Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 390Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 730Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000182e21c0e00] Frame size: 1920x1080p; bitrate: 880Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000182e21c0e00] Frame size: 960x720p; bitrate: 42Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 960x720p; bitrate: 60Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 960x720p; bitrate: 75Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 960x720p; bitrate: 115Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080p; bitrate: 63Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080p; bitrate: 84Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080p; bitrate: 100Mbps; pixel format: yuv422p <----- DNxHD 100 works
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080p; bitrate: 110Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 80Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 90Mbps; pixel format: yuv422p
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 100Mbps; pixel format: yuv422p <----- THIS IS WHAT I WANT DNxHD 100i
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 110Mbps; pixel format: yuv422p
[dnxhd @ 00000182e0836a80] ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
If I remove the '-flags +ildct+ilme -top 0' ffmpeg produces DNxHD 100 without a problem.

So what is wrong with my command line that ffmpeg complains about incorrect parameters?


Cu Selur

Ps.: the file complete black test file I used: here, also created a thread about this over at videohelp, but since nobody could help I thought maybe at doom9s are more DNxHD users,...
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 6th August 2022, 22:37   #2  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,346
The hint is the "Profile selected is experimental" log message. It means it refused to use it due to the experimental status. You can add "-strict experimental" to the command to enable experimental features.
Of course often the experimental status is for a reason, so I would strongly recommend to verify the output afterwards.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 7th August 2022, 06:09   #3  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
@nevairiel: sadly adding '-strict experimental' didn't help.
Code:
ffmpeg -y -strict experimental -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -map 0:0 -an -sn -b:v 100M -vf scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff -pix_fmt yuv422p -vsync 0  -sws_flags spline -mbd 2 -flags +ildct+ilme -top 0 -vcodec dnxhd -profile:v 0 "E:\Output\test.mov"
Updating to a new ffmpeg version:
Code:
I:\Hybrid\64bit>ffmpeg -y -strict experimental -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -map 0:0 -an -sn -b:v 100M -vf scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff -pix_fmt yuv422p -vsync 0  -sws_flags spline -mbd 2 -flags +ildct+ilme -top 0 -vcodec dnxhd -profile:v 0 "E:\Output\test.mov" -v debug
ffmpeg version N-107677-g0f5210f3e2-g5e7eaabb42+1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (Rev3, Built by MSYS2 project)
  configuration:  --pkg-config=pkgconf --cc='ccache gcc' --cxx='ccache g++' --ld='ccache g++' --extra-cxxflags=-fpermissive --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec --enable-cuda-llvm --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --enable-libaom --disable-debug --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libopenmpt --enable-version3 --enable-librav1e --enable-libsrt --enable-libgsm --enable-libvmaf --enable-libsvtav1 --enable-mbedtls --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads
  libavutil      57. 32.101 / 57. 32.101
  libavcodec     59. 41.101 / 59. 41.101
  libavformat    59. 29.100 / 59. 29.100
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 46.101 /  8. 46.101
  libswscale      6.  8.102 /  6.  8.102
  libswresample   4.  8.100 /  4.  8.100
  libpostproc    56.  7.100 / 56.  7.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-strict' ...Routing option strict to both codec and muxer layer
 matched as AVOption 'strict' with argument 'experimental'.
Reading option '-noautorotate' ... matched as option 'autorotate' (automatically insert correct rotate filters) with argument 0.
Reading option '-nostdin' ... matched as option 'stdin' (enable or disable interaction on standard input) with argument 0.
Reading option '-threads' ... matched as AVOption 'threads' with argument '8'.
Reading option '-ignore_editlist' ... matched as AVOption 'ignore_editlist' with argument 'true'.
Reading option '-i' ... matched as input url with argument 'C:\Users\Selur\Desktop\input.mov'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:0'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'.
Reading option '-sn' ... matched as option 'sn' (disable subtitle) with argument '1'.
Reading option '-b:v' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '100M'.
Reading option '-vf' ... matched as option 'vf' (set video filters) with argument 'scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv422p'.
Reading option '-vsync' ... matched as option 'vsync' (set video sync method globally; deprecated, use -fps_mode) with argument '0'.
Reading option '-sws_flags' ... matched as AVOption 'sws_flags' with argument 'spline'.
Reading option '-mbd' ... matched as AVOption 'mbd' with argument '2'.
Reading option '-flags' ... matched as AVOption 'flags' with argument '+ildct+ilme'.
Reading option '-top' ... matched as option 'top' (top=1/bottom=0/auto=-1 field first) with argument '0'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'dnxhd'.
Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument '0'.
Reading option 'E:\Output\test.mov' ... matched as output url.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option nostdin (enable or disable interaction on standard input) with argument 0.
Applying option vsync (set video sync method globally; deprecated, use -fps_mode) with argument 0.
-vsync is deprecated. Use -fps_mode
Passing a number to -vsync is deprecated, use a string argument as described in the manual.
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url C:\Users\Selur\Desktop\input.mov.
Applying option noautorotate (automatically insert correct rotate filters) with argument 0.
Successfully parsed a group of options.
Opening an input file: C:\Users\Selur\Desktop\input.mov.
[NULL @ 00000286e2693b40] Opening 'C:\Users\Selur\Desktop\input.mov' for reading
[file @ 00000286e0c496c0] Setting default whitelist 'file,crypto,data'
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000286e2693b40] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000286e2693b40] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000286e2693b40] Unknown dref type 0x73696c61 size 12
    Last message repeated 2 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000286e2693b40] Before avformat_find_stream_info() pos: 56625442 bytes read:71458 seeks:3 nb_streams:3
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000286e2693b40] Probe buffer size limit of 5000000 bytes reached
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000286e2693b40] After avformat_find_stream_info() pos: 5610752 bytes read:5678114 seeks:4 frames:7
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\Selur\Desktop\input.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2022-08-05T21:03:59.000000Z
  Duration: 00:00:02.00, start: 0.000000, bitrate: 226275 kb/s
  Stream #0:0[0x1](eng), 6, 1/30000: Video: v210, 1 reference frame (v210 / 0x30313276), yuv422p10le(smpte170m/smpte170m/bt709, bottom coded first (swapped)), 720x486, 0/1, 223725 kb/s, SAR 10:11 DAR 400:297, 29.97 fps, 29.97 tbr, 30k tbn (default)
    Metadata:
      creation_time   : 2022-08-05T21:03:59.000000Z
      handler_name    : Apple Video Media Handler
      vendor_id       : KeyG
      encoder         : Uncompressed 10-Bit YUV
      timecode        : 00:00:00;00
  Stream #0:1[0x2](eng), 0, 1/48000: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
    Metadata:
      creation_time   : 2022-08-05T21:03:59.000000Z
      handler_name    : Apple Sound Media Handler
      vendor_id       : [0][0][0][0]
      timecode        : 00:00:00;00
  Stream #0:2[0x3](eng), 1, 1/30000: Data: none (tmcd / 0x64636D74), 0/1, 0 kb/s (default)
    Metadata:
      creation_time   : 2022-08-05T21:03:59.000000Z
      handler_name    : Time Code Media Handler
      reel_name       : 001
      timecode        : 00:00:00;00
Successfully opened the file.
Parsing a group of options: output url E:\Output\test.mov.
Applying option map (set input stream mapping) with argument 0:0.
Applying option an (disable audio) with argument 1.
Applying option sn (disable subtitle) with argument 1.
Applying option b:v (video bitrate (please use -b:v)) with argument 100M.
Applying option vf (set video filters) with argument scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff.
Applying option pix_fmt (set pixel format) with argument yuv422p.
Applying option top (top=1/bottom=0/auto=-1 field first) with argument 0.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument dnxhd.
Applying option profile:v (set profile) with argument 0.
Successfully parsed a group of options.
Opening an output file: E:\Output\test.mov.
[file @ 00000286e269af80] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (v210 (native) -> dnxhd (native))
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 8 times
detected 32 logical cores
[Parsed_scale_0 @ 00000286e0c47cc0] Setting 'w' to value '1440'
[Parsed_scale_0 @ 00000286e0c47cc0] Setting 'h' to value '1080'
[Parsed_scale_0 @ 00000286e0c47cc0] Setting 'sws_flags' to value 'spline'
[Parsed_scale_0 @ 00000286e0c47cc0] w:1440 h:1080 flags:'' interl:0
[Parsed_zscale_1 @ 00000286e2768e40] Setting 'rangein' to value 'tv'
[Parsed_zscale_1 @ 00000286e2768e40] Setting 'range' to value 'tv'
[Parsed_setfield_2 @ 00000286e356bb00] Setting 'mode' to value 'bff'
[graph 0 input from stream 0:0 @ 00000286e356bdc0] Setting 'video_size' to value '720x486'
[graph 0 input from stream 0:0 @ 00000286e356bdc0] Setting 'pix_fmt' to value '64'
[graph 0 input from stream 0:0 @ 00000286e356bdc0] Setting 'time_base' to value '1/30000'
[graph 0 input from stream 0:0 @ 00000286e356bdc0] Setting 'pixel_aspect' to value '10/11'
[graph 0 input from stream 0:0 @ 00000286e356bdc0] Setting 'frame_rate' to value '30000/1001'
[graph 0 input from stream 0:0 @ 00000286e356bdc0] w:720 h:486 pixfmt:yuv422p10le tb:1/30000 fr:30000/1001 sar:10/11
[format @ 00000286e356c300] Setting 'pix_fmts' to value 'yuv422p'
[AVFilterGraph @ 00000286e32c0e00] query_formats: 6 queried, 5 merged, 0 already done, 0 delayed
[Parsed_scale_0 @ 00000286e0c47cc0] w:720 h:486 fmt:yuv422p10le sar:10/11 -> w:1440 h:1080 fmt:yuv422p10le sar:100/99 flags:0x0
[dnxhd @ 00000286e40b8c00] Profile selected is experimental
[dnxhd @ 00000286e40b8c00] video parameters incompatible with DNxHD. Valid DNxHD profiles:
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 115Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 240Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 290Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 220Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080i; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080i; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080i; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080i; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p10
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 110Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 60Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 75Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 120Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1280x720p; bitrate: 145Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 36Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 45Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 75Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 90Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 350Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 390Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 730Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000286e40b8c00] Frame size: 1920x1080p; bitrate: 880Mbps; pixel format: yuv444p10, gbrp10
[dnxhd @ 00000286e40b8c00] Frame size: 960x720p; bitrate: 42Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 960x720p; bitrate: 60Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 960x720p; bitrate: 75Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 960x720p; bitrate: 115Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080p; bitrate: 63Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080p; bitrate: 84Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080p; bitrate: 100Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080p; bitrate: 110Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080i; bitrate: 80Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080i; bitrate: 90Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080i; bitrate: 100Mbps; pixel format: yuv422p
[dnxhd @ 00000286e40b8c00] Frame size: 1440x1080i; bitrate: 110Mbps; pixel format: yuv422p
[dnxhd @ 00000286e2d10800] ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[AVIOContext @ 00000286e269b040] Statistics: 0 bytes written, 0 seeks, 0 writeouts
[AVIOContext @ 00000286e269c000] Statistics: 7545890 bytes read, 4 seeks
Conversion failed!
didn't either. but it seems like the bit depth conversion is the issue
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 7th August 2022, 06:20   #4  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
using: '-vf zscale=rangein=tv:range=tv,setfield=bff,scale=1440:1080:interl=1,format=yuv422p'
Code:
ffmpeg -y -strict experimental -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -map 0:0 -an -sn -b:v 100M -vf zscale=rangein=tv:range=tv,setfield=bff,scale=1440:1080:interl=1,format=yuv422p -fps_mode passthrough  -sws_flags spline -mbd 2 -flags +ildct+ilme -top 0 -vcodec dnxhd -profile:v 0 "E:\Output\test.mov" -v debug
seems better:
Code:
[Parsed_zscale_0 @ 000002739b6da5c0] Setting 'rangein' to value 'tv'
[Parsed_zscale_0 @ 000002739b6da5c0] Setting 'range' to value 'tv'
[Parsed_setfield_1 @ 000002739b6d9fc0] Setting 'mode' to value 'bff'
[Parsed_scale_2 @ 000002739b6d9a00] Setting 'w' to value '1440'
[Parsed_scale_2 @ 000002739b6d9a00] Setting 'h' to value '1080'
[Parsed_scale_2 @ 000002739b6d9a00] Setting 'interl' to value '1'
[Parsed_scale_2 @ 000002739b6d9a00] Setting 'sws_flags' to value 'spline'
[Parsed_scale_2 @ 000002739b6d9a00] w:1440 h:1080 flags:'' interl:1
[Parsed_format_3 @ 00000273989f7cc0] Setting 'pix_fmts' to value 'yuv422p'
[graph 0 input from stream 0:0 @ 000002739b6dab80] Setting 'video_size' to value '720x486'
[graph 0 input from stream 0:0 @ 000002739b6dab80] Setting 'pix_fmt' to value '64'
[graph 0 input from stream 0:0 @ 000002739b6dab80] Setting 'time_base' to value '1/30000'
[graph 0 input from stream 0:0 @ 000002739b6dab80] Setting 'pixel_aspect' to value '10/11'
[graph 0 input from stream 0:0 @ 000002739b6dab80] Setting 'frame_rate' to value '30000/1001'
[graph 0 input from stream 0:0 @ 000002739b6dab80] w:720 h:486 pixfmt:yuv422p10le tb:1/30000 fr:30000/1001 sar:10/11
[format @ 000002739b1a14c0] Setting 'pix_fmts' to value 'yuv422p|yuv422p10le|yuv444p10le|gbrp10le'
[AVFilterGraph @ 000002739b0736c0] query_formats: 7 queried, 6 merged, 0 already done, 0 delayed
[Parsed_scale_2 @ 000002739b6d9a00] w:720 h:486 fmt:yuv422p10le sar:10/11 -> w:1440 h:1080 fmt:yuv422p sar:100/99 flags:0x0
but still fails
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 7th August 2022, 07:36   #5  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,902
What are you guys doing up at 5AM on a Sunday?! O_O
Anyway, we do encode in DNx with ffmpeg using FFAStrans and the files are accepted by AVID Media Composer, AVID Media Director and AVID Interplay Access.
Give me a bit / few minutes to get up, shower, have breakfast and get to work and I'll give you the right command line.
FranceBB is offline   Reply With Quote
Old 7th August 2022, 08:24   #6  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
No hurry and thanks for looking into it.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 7th August 2022, 10:35   #7  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 705
Hi Selur
What did the developers improve in ffmpeg? "Constify frame->data pointers for encoders where possible"
https://github.com/FFmpeg/FFmpeg/com...dec/dnxhdenc.c
I'm a lousy advisor. How does codec work with thread 1?
Jamaika is offline   Reply With Quote
Old 7th August 2022, 10:48   #8  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
Sadly using '-thread 1' instead of '-threads 8' doesn't change a thing.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 7th August 2022, 13:09   #9  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,902
Ok, so, sorry for the late reply, but it is Sunday after all ehehehehe
So, for the DNxHD standard, you have different version according with the different framerates, so basically it changes if you're encoding in 25i or 30i (or indeed if you're encoding their progressive counterparts).
Also please note that there's a difference between DNxHD and the "new" DNxHR and today I'm only gonna talk about the "old" DNxHD.

Let's crack on, shall we...

Currently you have the following possibilities in terms of resolution and framerate in DNxHD:



- 1920x1080 60p
- 1920x1080 59,940p
- 1920x1080 50p
- 1920x1080 30i
- 1920x1080 29,970p
- 1920x1080 25i
- 1920x1080 25p
- 1920x1080 24p
- 1920x1080 23,976p
- 1280x720 59,940p
- 1280x720 50p
- 1280x720 29,970p
- 1280x720 25p
- 1280x720 23,976p

According to each of these profiles, there are different specs and indeed different bitrates.
Since you're interested in the interlaced modes only and I'm gonna talk about 1920x1080 30i and 1920x1080 25i only.
If you go for 1920x1080 30i, you can have DNxHD 220x or 220 (the one with the "x" is 10bit, while the one without is 8bit) or DNxHD 145 which is 8bit only.
If you go for 1920x1080 25i, you can have DNxHD 185x or 185 (the one with the "x" is 10bit, while the one without is 8bit) or DNxHD 120 which is 8bit only.


From your post, you're targeting the "100" version in PAL which "doesn't exist" as it's DNxHD 120 8bit.
You see, I don't know if you're familiar with things like AVC Intra Classes in H.264, but essentially it's the same in DNxHD.
In H.264, when we talk about "Intra Class 100", we don't mean 100 Mbit/s for ANY given framerate, in fact Intra Class 100 in H.264 gives you 112 Mbit/s for 25i, 223 Mbit/s for 25p etc.
So... in DNxHD, the 100 class is:

- 290 Mbit/s for 1920x1080 60p and 59,940p
- 240 Mbit/s for 1920x1080 50p
- 145 Mbit/s for 1920x1080 29,970p and 30i
- 120 Mbit/s for 1920x1080 25p and 25i
- 115 Mbit/s for 1920x1080 24p and 23,976p

so the one you're interested in is 120 Mbit/s 25i, in your case.
As to the audio, the standard dictates either discrete PCM mono channels 24bit 48'000Hz or PCM Stereo channels 24bit 48'000Hz OR if you have like 5.1 you must use DolbyE while for 5.1.4 Atmos you must use DolbyED2 and aside for PCM, none of them can be encoded with free open source software 'cause they're proprietary codecs that belong to Dolby.
Anyway, even for 5.1 etc, most studios will accept them as discrete Mono PCM channels (1ch per track), so it won't be a big deal.
Last but not least, if you're gonna go for .mxf, DO NOT use the FFMpeg mxf muxer as it's really bad and full of flaws, so it's much much better to mux (or remux) using BBC BMX Transwrap, which is free and open source too! (but most importantly it's proven to be working with AVID appliances).


The command line would then be:

AVS Script:

Code:
ColorBars(1920, 1080, pixel_type="YV16")

ChangeFPS(25)

Trim(0, 1500)


BAT File:

Quote:
ffmpeg.exe -i "AVS Script.avs" -vf "sidedata=delete,metadata=delete,setfield=tff,setdar=16:9,setsar=1" -timecode 10:00:00:00 -tag:v AVdn -profile:v dnxhd -c:v dnxhd -strict -1 -b:v 120000000 -r 25 -pix_fmt yuv422p -aspect 16:9 -field_order tt -top 1 -flags +ilme+ildct -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -chroma_sample_location topleft -signal_standard 4 -c:a pcm_s24le -ar 48000 -af loudnorm=I=-24:LRA=12:tp=-2 -f mxf -max_muxing_queue_size 700 -map_metadata -1 -metadata "creation_time=now" -y "pre-final_output.mxf"

bmxtranswrap.exe -p -y 10:00:00:00 -t op1a -o "final_output.mxf" "pre-final_output.mxf"

pause

And the resulting file is gonna be:






Of course if you have to create really interlaced contents, make sure to go to 50p and divide in fields like this:

Code:
ConvertFPS(50)
assumeTFF()
separatefields()
selectevery(4,0,3)
weave()
as you would for any PAL stuff.

This is a folder with everything in it: https://we.tl/t-lp4Q4NRrmZ
FranceBB is offline   Reply With Quote
Old 7th August 2022, 17:02   #10  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
wetranfer link gives me: "Yikes, that page can’t be found."

I was aiming for
Code:
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 100Mbps; pixel format: yuv422p
which is listed by ffmpeg and is also listed over at https://en.wikipedia.org/wiki/List_o...HD_resolutions

I only encode to .mov not .mxf.

Also I want to use ffmpeg only not Avisynth.

-> can't get this to work here at all.

---------------
Funny thing is, if remove the "-flags +ildct+ilme -top 0" from:
Code:
ffmpeg -y -strict experimental -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -map 0:0 -an -sn -b:v 100M -vf scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff,scale,format=yuv422p -pix_fmt yuv422p -vsync 0  -sws_flags spline -mbd 2 -flags +ildct+ilme -top 0 -vcodec dnxhd -profile:v 0 "E:\Output\test.mov"
and thus call:
Code:
ffmpeg -y -strict experimental -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -map 0:0 -an -sn -b:v 100M -vf scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff,scale,format=yuv422p -pix_fmt yuv422p -vsync 0  -sws_flags spline -mbd 2 -vcodec dnxhd -profile:v 0 "E:\Output\test.mov"
thus aiming for:
Quote:
dnxhd @ 00000182e21c0e00] Frame size: 1440x1080p; bitrate: 100Mbps; pixel format: yuv422
encoding does work and mediainfo reports:
Code:
General
Complete name                            : E:\Output\test.mov
Format                                   : MPEG-4
Commercial name                          : DNxHD 100
Format profile                           : QuickTime
Codec ID                                 : qt   0000.02 (qt  )
File size                                : 23.9 MiB
Duration                                 : 2 s 2 ms
Overall bit rate                         : 100 Mb/s
Writing application                      : Lavf59.29.100

Video
ID                                       : 1
Format                                   : VC-3
Commercial name                          : DNxHD 100
Format version                           : Version 1
Format profile                           : HD@
Codec ID                                 : AVdn
Codec ID/Info                            : Avid DNxHD
Duration                                 : 2 s 2 ms
Bit rate mode                            : Constant
Bit rate                                 : 100 Mb/s
Width                                    : 1 440 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 4:3
Original display aspect ratio            : 4:3
Frame rate mode                          : Constant
Frame rate                               : 29.970 (30000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:2
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 2.149
Stream size                              : 23.9 MiB (100%)
Language                                 : English
Color primaries                          : BT.601 NTSC
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.601
-> problem is that I want the
Code:
[dnxhd @ 00000182e21c0e00] Frame size: 1440x1080i; bitrate: 100Mbps; pixel format: yuv422p
but I can't get ffmpeg to encode to that.
__________________
Hybrid here in the forum, homepage

Last edited by Selur; 7th August 2022 at 17:20.
Selur is offline   Reply With Quote
Old 8th August 2022, 16:12   #11  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
Code:
ffmpeg -y -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -pix_fmt yuv422p -map 0:0 -an -sn -vf format=yuv422p,scale=1440:1080,zscale=rangein=tv:range=tv,setfield=bff,colormatrix=bt601:bt709 -vsync 0  -sws_flags spline -vcodec dnxhd -profile:v 0 -b:v 120M -mbd 2 -flags +ildct+ilme -top 0 "E:\Output\test.mov"
does work, but create DNxHD 145,... so from my point of view something does not work as it should -> https://trac.ffmpeg.org/ticket/9865
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 8th August 2022, 16:31   #12  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,346
Quote:
Originally Posted by Selur View Post
@nevairiel: sadly adding '-strict experimental' didn't help.
You need to put it after the input file (eg. after the -i <xx>), so that it applies to the output encoder, instead of the input.
All options before the input file pertain to the input, all options after the input file pertain to the output. If you use multiple inputs, then the same rule follows on a per-file basis.

As long as your output log contains this line, you did not properly enable experimental mode:
[dnxhd @ 000001f07f321b80] Profile selected is experimental
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 8th August 2022 at 16:34.
nevcairiel is offline   Reply With Quote
Old 9th August 2022, 04:17   #13  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,277
@nevcairiel: Thanks! You were right! adding '-stric -2' does help somewhat, but using
Code:
ffmpeg -y -noautorotate -nostdin -threads 8 -ignore_editlist true -i "C:\Users\Selur\Desktop\input.mov" -strict -2 -pix_fmt yuv422p -map 0:0 -an -sn -vf format=yuv422p,scale=1440:1080,zscale=rangein=tv:range=tv,colormatrix=bt601:bt709,scale,format=yuv422p -vsync 0  -sws_flags spline -vcodec dnxhd -profile:v 0 -b:v 100M -mbd 2 -flags +ildct+ilme -top 0 "E:\Output\test.mov"
the output is DNxHD 220i :/
Code:
Video
ID                                       : 1
Format                                   : VC-3
Commercial name                          : DNxHD 220
Format version                           : Version 1
Format profile                           : HD@
Codec ID                                 : AVdn
Codec ID/Info                            : Avid DNxHD
Duration                                 : 2 s 2 ms
Bit rate mode                            : Constant
Bit rate                                 : 200 Mb/s
Width                                    : 1 440 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 4:3
Original display aspect ratio            : 4:3
Frame rate mode                          : Constant
Frame rate                               : 29.970 (30000/1001) FPS
Original frame rate                      : 59.940 (60000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:2
Bit depth                                : 8 bits
Scan type                                : Interlaced
Scan order                               : Bottom Field First
-> something is still wrong with the call.

Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 00:15.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.