Convertir JPG a MP4 salida verde

1

Estoy tratando de convertir archivos JPEG a MP4 usando ffmpeg. Tengo el proceso trabajando para PNG, así que sé que voy por el camino correcto. Cuando ffmpeg termina de procesar un JPEG, el MP4 resultante se puede reproducir en smplayer (OpenSuse) produce pero omxplayer (Raspberry Pi) no es lo que se espera. Parece que los primeros cuadros se reproducen correctamente, parpadean en la pantalla casi demasiado rápido para verlos, luego se reproducen varios colores, predominantemente tonos de verde, como una imagen estática.

Ya he intentado convertir el JPEG a PNG antes de pasarlo a través de ffmpeg, pero curiosamente eso no funcionó. Supongo que hay un interruptor / opción que necesito para que ffmpeg compile el mp4 con un formato que permita a omxplayer reproducir el mp4 correctamente.

La sección en el guión es ...

set -x
echo "Source image: ${SOURCE_IMAGE}" >&2
ffmpeg -loop 1 -pattern_type glob -i "/tmp/${LN_PREFIX}.fade-*.$$.${SOURCE_EXTENSION}" -c:v libx264 ${IMPORT_FORMAT} -t ${DISPLAY_SECONDS} -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -r ${FPS} /tmp/slide.$$.mp4 # 1>/dev/null 2>&1
set +x

Lo que estoy obteniendo como salida es

Source image: public/user_files/campaigns/5/DSC_0011.JPG
Creating the full length mp4 public/user_files/campaigns/5/DSC_0011.JPG-seconds_15-fade_1.mp4
+ ffmpeg -loop 1 -pattern_type glob -i '/tmp/DSC_0011.JPG.fade-*.2367.JPG' -c:v libx264 -t 15 -vf 'scale=trunc(iw/2)*2:trunc(ih/2)*2' -r 25 /tmp/slide.2367.mp4
ffmpeg version N-79177-ga677121 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
  configuration: --prefix=/usr/local/bin --pkg-config-flags=--static --extra-cflags=-I/home/mike/ffmpeg_build/include --extra-ldflags=-L/home/mike/ffmpeg_build/lib --bindir=/usr/local/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 32.100 / 57. 32.100
  libavformat    57. 29.101 / 57. 29.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 40.102 /  6. 40.102
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, image2, from '/tmp/DSC_0011.JPG.fade-*.2367.JPG':
  Duration: 00:00:00.08, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 2048x1536, 25 fps, 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x2f82e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
[libx264 @ 0x2f82e00] profile High, level 5.0
[libx264 @ 0x2f82e00] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/tmp/slide.2367.mp4':
  Metadata:
    encoder         : Lavf57.29.101
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p(pc), 2048x1536, q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
  encoder         : Lavc57.32.100 libx264
Side data:
  cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=   19 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   37 fps= 35 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   50 fps= 32 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   62 fps= 30 q=28.0 size=     507kB time=00:00:00.40 bitrate=10386.6kbits/s speed=0.191x    
frame=   75 fps= 29 q=28.0 size=     511kB time=00:00:00.92 bitrate=4546.7kbits/s speed=0.353x    
frame=   89 fps= 29 q=28.0 size=     513kB time=00:00:01.48 bitrate=2841.8kbits/s speed=0.475x    
frame=  104 fps= 29 q=28.0 size=     516kB time=00:00:02.08 bitrate=2032.3kbits/s speed=0.571x    
frame=  118 fps= 28 q=28.0 size=     518kB time=00:00:02.64 bitrate=1607.9kbits/s speed=0.63x    
frame=  133 fps= 28 q=28.0 size=     521kB time=00:00:03.24 bitrate=1316.6kbits/s speed=0.684x    
frame=  148 fps= 28 q=28.0 size=     523kB time=00:00:03.84 bitrate=1116.3kbits/s speed=0.729x    
frame=  162 fps= 28 q=28.0 size=     525kB time=00:00:04.40 bitrate= 978.3kbits/s speed=0.762x    
frame=  175 fps= 28 q=28.0 size=     528kB time=00:00:04.92 bitrate= 878.3kbits/s speed=0.783x    
frame=  190 fps= 28 q=28.0 size=     530kB time=00:00:05.52 bitrate= 786.6kbits/s speed=0.808x    
frame=  205 fps= 28 q=28.0 size=     533kB time=00:00:06.12 bitrate= 712.9kbits/s speed=0.832x    
frame=  219 fps= 28 q=28.0 size=     535kB time=00:00:06.68 bitrate= 655.8kbits/s speed=0.848x    
frame=  234 fps= 28 q=28.0 size=     537kB time=00:00:07.28 bitrate= 604.6kbits/s speed=0.867x    
frame=  248 fps= 28 q=28.0 size=     540kB time=00:00:07.84 bitrate= 564.0kbits/s speed=0.879x    
frame=  263 fps= 28 q=28.0 size=     542kB time=00:00:08.44 bitrate= 526.1kbits/s speed=0.892x    
frame=  278 fps= 28 q=28.0 size=     545kB time=00:00:09.04 bitrate= 493.5kbits/s speed=0.906x    
frame=  291 fps= 28 q=28.0 size=     547kB time=00:00:09.56 bitrate= 468.4kbits/s speed=0.911x    
frame=  302 fps= 27 q=28.0 size=    1190kB time=00:00:10.00 bitrate= 975.0kbits/s speed=0.908x    
frame=  317 fps= 27 q=28.0 size=    1192kB time=00:00:10.60 bitrate= 921.2kbits/s speed=0.919x    
frame=  332 fps= 27 q=28.0 size=    1194kB time=00:00:11.20 bitrate= 873.1kbits/s speed=0.927x    
frame=  348 fps= 28 q=28.0 size=    1196kB time=00:00:11.84 bitrate= 827.2kbits/s speed=0.94x    
frame=  363 fps= 28 q=28.0 size=    1197kB time=00:00:12.44 bitrate= 788.4kbits/s speed=0.948x    
frame=  375 fps= 26 q=-1.0 Lsize=    1209kB time=00:00:14.92 bitrate= 663.9kbits/s speed=1.02x    
video:1204kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.433904%
[libx264 @ 0x2f82e00] frame I:2     Avg QP:17.15  size:583658
[libx264 @ 0x2f82e00] frame P:94    Avg QP:18.65  size:   376
[libx264 @ 0x2f82e00] frame B:279   Avg QP:30.33  size:   105
[libx264 @ 0x2f82e00] consecutive B-frames:  0.8%  0.0%  0.0% 99.2%
[libx264 @ 0x2f82e00] mb I  I16..4:  0.5% 87.2% 12.3%
[libx264 @ 0x2f82e00] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  1.4%  0.0%  0.0%  0.0%  0.0%    skip:98.6%
[libx264 @ 0x2f82e00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.1%  0.0%  0.0%  direct: 0.0%  skip:99.9%  L0:25.6% L1:74.4% BI: 0.0%
[libx264 @ 0x2f82e00] 8x8 transform intra:87.2% inter:95.2%
[libx264 @ 0x2f82e00] coded y,uvDC,uvAC intra: 99.4% 99.1% 95.1% inter: 0.0% 0.3% 0.0%
[libx264 @ 0x2f82e00] i16 v,h,dc,p:  4%  2%  9% 84%
[libx264 @ 0x2f82e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 21% 10%  6%  8%  8%  9%  9% 14%
[libx264 @ 0x2f82e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 20%  8%  7% 10%  9% 11%  8% 11%
[libx264 @ 0x2f82e00] i8c dc,h,v,p: 39% 36% 10% 15%
[libx264 @ 0x2f82e00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x2f82e00] ref P L0: 92.8%  0.0%  6.2%  1.0%
[libx264 @ 0x2f82e00] ref B L0: 96.3%  3.6%  0.1%
[libx264 @ 0x2f82e00] ref B L1: 99.3%  0.7%
[libx264 @ 0x2f82e00] kb/s:657.11
+ set +x
burtzerk
fuente
¿La resolución es aproximadamente igual a la de los PNG? Una búsqueda rápida revela que es probable que esto tenga que ver con la configuración de la memoria (GPU) en el Pi, en lugar de la salida ffmpeg.
Gyan
¿Estás seguro de que tu jugador maneja yuvj420p? Intenta agregar -pixfmt yuv420p.
llogan