video - Upper limit on FFMPEG/libx264 frame sizes? -
i'm trying use ffmpeg transcode video large frames (4096 x 4096). it's short video - under 2 minutes, source video file 15.8gb. (the video animation designed projected onto planetarium domes.)
the source file quicktime mov containing uncompressed photo-jpeg images (with audio, too). when tell ffmpeg transcode mov file mp4 file, says:
error while opening encoder output stream #0:0 - maybe incorrect parameters such bit_rate, rate, width or height
not helpful, yes, i've verified of parameters correct and/or defaults. in fact, if change requested output size 2048x2048, works fine. that's why suspect there's upper bound in encoder.
i kerflummoxed. suggestions result in successful transcode appreciated. (at point willing consider alternatives ffmpeg.)
the facts
i run ffmpeg script:
set srcfile=%1 set dstfile=%srcfile:.mov=.mp4% ffmpeg -i %srcfile% -movflags faststart -q:a 0 -q:v 0 -pix_fmt yuv420p -sws_flags gauss -s 4096x4096 %dstfile%
the output
ffmpeg version n-50911-g9efcfbe copyright (c) 2000-2013 ffmpeg developers built on mar 13 2013 21:26:48 gcc 4.7.2 (gcc) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --ena ble-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 52. 19.100 / 52. 19.100 libavcodec 55. 0.100 / 55. 0.100 libavformat 55. 0.100 / 55. 0.100 libavdevice 54. 4.100 / 54. 4.100 libavfilter 3. 45.103 / 3. 45.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 input #0, mov,mp4,m4a,3gp,3g2,mj2, 'also-sprach-zarathustra-4k.mov': metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2013-01-11 23:41:30 duration: 00:01:40.57, start: 0.000000, bitrate: 1357694 kb/s stream #0:0(eng): audio: pcm_s16be (twos / 0x736f7774), 44100 hz, stereo, s16, 1411 kb/s metadata: creation_time : 2013-01-11 23:41:30 handler_name : apple alias data handler stream #0:1(eng): video: mjpeg (jpeg / 0x6765706a), yuvj420p, 4096x4096 [sar 1:1 dar 1:1], 1356281 kb/s, 30 fps, 30 tbr, 3k tbn, 3k tbc metadata: creation_time : 2013-01-11 23:41:30 handler_name : apple alias data handler file 'also-sprach-zarathustra-4k.mp4' exists. overwrite ? [y/n] y using sar=1/1 [libx264 @ 003b9c80] frame mb size (256x256) > level limit (36864) [libx264 @ 003b9c80] dpb size (4 frames, 262144 mbs) > level limit (2 frames, 184320 mbs) [libx264 @ 003b9c80] using cpu capabilities: mmx2 sse2fast ssse3 sse4.2 avx avx2 fma3 lzcnt bmi1 bmi2 x264 [error]: malloc of size 17305600 failed output #0, mp4, 'also-sprach-zarathustra-4k.mp4': metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt stream #0:0(eng): video: h264, yuv420p, 4096x4096 [sar 1:1 dar 1:1], q=-1--1, 90k tbn, 30 tbc metadata: creation_time : 2013-01-11 23:41:30 handler_name : apple alias data handler stream #0:1(eng): audio: none, 44100 hz, stereo, s16, 128 kb/s metadata: creation_time : 2013-01-11 23:41:30 handler_name : apple alias data handler stream mapping: stream #0:1 -> #0:0 (mjpeg -> libx264) stream #0:0 -> #0:1 (pcm_s16be -> libvo_aacenc) error while opening encoder output stream #0:0 - maybe incorrect parameters such bit_rate, rate, width or height
ps: yes, playing @ home, theme 2001 - space odyssey. can see 1k youtube version here: 2001 - fulldome space odyssey , yes, in planetarium sound system, absolutely epic.
i think you're running limitation of of x264's codec complexity levels.
brief description of levels http://en.wikipedia.org/wiki/h.264/mpeg-4_avc
as term used in standard, "level" specified set of constraints indicate degree of required decoder performance profile. example, level of support within profile specifies maximum picture resolution, frame rate, , bit rate decoder may use. decoder conforms given level must able decode bitstreams encoded level , lower levels.
the max resolution highest level (5.2) 4,096×2,304.
i using hevc designed these larger format 4k / ultra-hd resolutions.
http://en.wikipedia.org/wiki/hevc
max resolution hevc 8,192x4,320
Comments
Post a Comment