Beim Transkodieren von AVI in MP4 mit ffmpeg verschwindet das Miniaturbild

Beim Transkodieren von AVI in MP4 mit ffmpeg verschwindet das Miniaturbild

Wenn ich versuche, eine sehr alte AVI-Datei mit ffmpeg in eine MP4-Datei umzuwandeln, verschwindet das Miniaturbild. Gibt es eine Möglichkeit, das Miniaturbild beizubehalten oder automatisch direkt aus dem Videostream eines zu generieren, beispielsweise mithilfe des ersten Frames, ohne ein Bild speichern und dann hinzufügen zu müssen? Ich verwende Win10 und versuche, die Dateien im Windows Explorer anzuzeigen.

Protokoll:

ffmpeg version git-2020-07-16-d11cc74 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200621
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --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-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 55.100 / 56. 55.100
  libavcodec     58. 96.100 / 58. 96.100
  libavformat    58. 48.100 / 58. 48.100
  libavdevice    58. 11.101 / 58. 11.101
  libavfilter     7. 87.100 /  7. 87.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, avi, from 'in.avi':
  Metadata:
    creation_time   : 2004-03-14 13:53:17
    encoder         : CanonMVI01
  Duration: 00:00:30.00, start: 0.000000, bitrate: 5217 kb/s
    Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 5136 kb/s, 15 fps, 15 tbr, 15 tbn, 15 tbc
    Stream #0:1: Audio: pcm_u8 ([1][0][0][0] / 0x0001), 11024 Hz, mono, u8, 88 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (pcm_u8 (native) -> aac (native))
Press [q] to stop, [?] for help
[aac @ 0000023cd2571a40] Too many bits 17832.925170 > 6144 per frame requested, clamping to max
[libx264 @ 0000023cd256fb00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0000023cd256fb00] profile High 4:2:2, level 2.2, 4:2:2, 8-bit
[libx264 @ 0000023cd256fb00] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - 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=15 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=15 ip_ratio=1.40 pb_ratio=1.30 aq=0
Output #0, mp4, to 'out.mp4':
  Metadata:
    encoder         : Lavf58.48.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj422p(pc), 640x480, q=-1--1, 15 fps, 500k tbn, 15 tbc
    Metadata:
      encoder         : Lavc58.96.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 11025 Hz, mono, fltp, 66 kb/s
    Metadata:
      encoder         : Lavc58.96.100 aac
frame=  450 fps= 32 q=-1.0 Lsize=   21274kB time=00:00:30.00 bitrate=5809.2kbits/s speed=2.15x
video:21065kB audio:195kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.062795%
[libx264 @ 0000023cd256fb00] frame I:2     Avg QP:12.00  size: 59822
[libx264 @ 0000023cd256fb00] frame P:117   Avg QP:15.00  size: 57718
[libx264 @ 0000023cd256fb00] frame B:331   Avg QP:16.66  size: 44404
[libx264 @ 0000023cd256fb00] consecutive B-frames:  1.3%  0.9%  2.7% 95.1%
[libx264 @ 0000023cd256fb00] mb I  I16..4:  0.1% 99.5%  0.3%
[libx264 @ 0000023cd256fb00] mb P  I16..4:  0.0% 55.3%  7.8%  P16..4:  9.2% 16.1% 11.5%  0.0%  0.0%    skip: 0.0%
[libx264 @ 0000023cd256fb00] mb B  I16..4:  0.1% 25.5%  0.3%  B16..8: 25.6% 19.7%  7.7%  direct:20.1%  skip: 1.0%  L0:17.5% L1:13.5% BI:69.0%
[libx264 @ 0000023cd256fb00] 8x8 transform intra:93.4% inter:84.1%
[libx264 @ 0000023cd256fb00] coded y,uvDC,uvAC intra: 98.8% 79.8% 22.5% inter: 97.3% 94.2% 42.8%
[libx264 @ 0000023cd256fb00] i16 v,h,dc,p:  4% 25% 16% 55%
[libx264 @ 0000023cd256fb00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 19% 52%  2%  2%  2%  4%  2%  5%
[libx264 @ 0000023cd256fb00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 20% 15%  7%  9%  6% 11%  6% 13%
[libx264 @ 0000023cd256fb00] i8c dc,h,v,p: 45% 21% 33%  2%
[libx264 @ 0000023cd256fb00] Weighted P-Frames: Y:6.0% UV:1.7%
[libx264 @ 0000023cd256fb00] ref P L0: 38.4% 25.7% 19.4% 15.7%  0.8%
[libx264 @ 0000023cd256fb00] ref B L0: 88.3%  9.6%  2.1%
[libx264 @ 0000023cd256fb00] ref B L1: 94.8%  5.2%
[libx264 @ 0000023cd256fb00] kb/s:5752.13
[aac @ 0000023cd2571a40] Qavg: 58267.156

Antwort1

Hinzufügen -vf format=yuv420p:

ffmpeg -i in.avi -qp 15 -c:v h264 -c:a aac -b:a 192k -vf format=yuv420p out.mp4

Dadurch wird ein kompatibles Chroma-Subsampling-Schema verwendet. Andernfalls wählt der Encoder libx264 das Chroma-Subsampling, das der Eingabe am ähnlichsten ist, aber von den meisten Playern oder Dateimanagern nicht gelesen werden kann.

verwandte Informationen