Estoy usando FFMpeg para generar videos de lapso de tiempo H.264 sin pérdida de percepción a partir de imágenes fijas, donde "sin pérdida" significa que estoy preservando la resolución de 5184 x 3456 de las fotos originales al tiempo que obtengo los beneficios de la compresión entre cuadros para un archivo eficiente.
Se supone que H.264 no admite 5184 x 3456, pero cuando elijo 4.2.0 (apropiado para mis imágenes comprimidas JPEG 7D de Canon, creo) parece funcionar, excepto por un par de cosas:
- Estoy recibiendo advertencias que no entiendo completamente
- A algunos jugadores / NLM no les gusta el video resultante
Mis NLM preferidos (por ejemplo, DaVinci Resolve) se atascan cuando se reproducen los clips, pero por lo demás funcionan, lo que plantea la pregunta: ¿Puedo ignorar estas advertencias y continuar? O, ¿descubriré algunos años más adelante que mis clips de timelapse son defectuosos y ya no se pueden usar? ¿Quizás debería usar un códec diferente (por ejemplo, H.265)?
Aquí está el comando que estoy usando:
ffmpeg -framerate 24 -start_number 142 -i IMG_%04d.JPG -c:v libx264 -preset veryslow -crf 18 -pix_fmt yuv420p output.mp4
Y aquí está la salida:
ffmpeg version N-86482-gbc40674 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.1.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
libavutil 55. 66.100 / 55. 66.100
libavcodec 57. 99.100 / 57. 99.100
libavformat 57. 73.100 / 57. 73.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 92.100 / 6. 92.100
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
Input #0, image2, from 'IMG_%04d.JPG':
Duration: 00:00:36.83, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 5184x3456, 24 tbr, 24 tbn, 24 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 00000000026245e0] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0000000000729ae0] frame MB size (324x216) > level limit (36864)
[libx264 @ 0000000000729ae0] DPB size (16 frames, 1119744 mbs) > level limit (2 frames, 184320 mbs)
[libx264 @ 0000000000729ae0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0000000000729ae0] profile High, level 5.2
[libx264 @ 0000000000729ae0] 264 - core 150 r2833 df79067 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=10 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'recording_studio_construction_20121031_5609.mp4':
Metadata:
encoder : Lavf57.73.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 5184x3456, q=-1--1, 24 fps, 12288 tbn, 24 tbc
Metadata:
encoder : Lavc57.99.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 884 fps=0.5 q=-1.0 Lsize= 253252kB time=00:00:36.70 bitrate=56516.8kbits/s speed=0.0214x x
video:253240kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.004778%
[libx264 @ 0000000000729ae0] frame I:4 Avg QP:15.60 size:1304736
[libx264 @ 0000000000729ae0] frame P:178 Avg QP:17.96 size:430397
[libx264 @ 0000000000729ae0] frame B:702 Avg QP:18.48 size:252831
[libx264 @ 0000000000729ae0] consecutive B-frames: 2.6% 2.9% 5.1% 10.0% 19.8% 19.0% 11.9% 22.6% 6.1%
[libx264 @ 0000000000729ae0] mb I I16..4: 7.5% 86.8% 5.7%
[libx264 @ 0000000000729ae0] mb P I16..4: 2.1% 4.3% 0.4% P16..4: 64.4% 13.2% 11.8% 0.0% 0.0% skip: 3.9%
[libx264 @ 0000000000729ae0] mb B I16..4: 0.2% 0.5% 0.0% B16..8: 46.9% 11.4% 1.5% direct:12.2% skip:27.3% L0:62.1% L1:36.0% BI: 1.9%
[libx264 @ 0000000000729ae0] 8x8 transform intra:68.7% inter:61.7%
[libx264 @ 0000000000729ae0] direct mvs spatial:99.0% temporal:1.0%
[libx264 @ 0000000000729ae0] coded y,uvDC,uvAC intra: 69.4% 57.1% 15.4% inter: 29.5% 29.9% 0.1%
[libx264 @ 0000000000729ae0] i16 v,h,dc,p: 25% 20% 11% 44%
[libx264 @ 0000000000729ae0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 7% 7% 6% 12% 15% 12% 15% 12% 14%
[libx264 @ 0000000000729ae0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 6% 12% 3% 12% 15% 12% 14% 11% 15%
[libx264 @ 0000000000729ae0] i8c dc,h,v,p: 28% 40% 22% 10%
[libx264 @ 0000000000729ae0] Weighted P-Frames: Y:18.0% UV:6.2%
[libx264 @ 0000000000729ae0] ref P L0: 27.0% 4.9% 14.1% 8.7% 7.5% 6.8% 5.9% 3.5% 3.3% 3.1% 2.7% 2.9% 2.7% 2.6% 2.6% 1.8%
[libx264 @ 0000000000729ae0] ref B L0: 30.7% 15.7% 12.0% 7.4% 6.2% 5.5% 4.8% 3.2% 3.0% 2.7% 2.5% 2.3% 2.1% 1.4% 0.4%
[libx264 @ 0000000000729ae0] ref B L1: 85.3% 14.7%
[libx264 @ 0000000000729ae0] kb/s:56322.30
Cualquier consejo es apreciado.