Verwenden von ffmpeg, um einen Film aus PNG-Dateien zu erstellen

11

Ich habe 277 800x600 PNG-Dateien mit Dateinamen im Format Island_sizes-CSH (II) - ###. PNG, wobei ### eine Zahl ist, die mit 084 beginnt und bei 360 endet.

Ich mache

ffmpeg -i island_sizes-CSH\(II\)-*.png output.mpg -y

aber es funktioniert nicht:

ffmpeg -f image2 -i Inselgrößen-CSH \ (II \) - *. png video.mpg -y
ffmpeg Version 1.2.1 Copyright (c) 2000-2013 der FFmpeg-Entwickler
  gebaut am 10. Mai 2013 um 15:14:14 Uhr mit gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  Konfiguration: --prefix = / usr --libdir = / usr / lib64 --shlibdir = / usr / lib64 --mandir = / usr / share / man --enable-shared --enable-runtime-cpudetect --enable- gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv --enable- libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions - fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = generic -fPIC '--disable-stripping
  libavutil 52. 18.100 / 52. 18.100
  libavcodec 54. 92.100 / 54. 92.100
  libavformat 54. 63.104 / 54. 63.104
  libavdevice 54. 3.103 / 54. 3.103
  libavfilter 3. 42.103 / 3. 42.103
  libswscale 2. 2.100 / 2. 2.100
  libswresample 0. 17.102 / 0. 17.102
  libpostproc 52. 2.100 / 52. 2.100
Geben Sie # 0, Bild2, von 'island_sizes-CSH (II) -084.png' ein:
  Dauer: 00: 00: 00.04, Start: 0.000000, Bitrate: N / A.
    Stream # 0: 0: Video: png, rgba, 800 x 600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init fehlgeschlagen
Ausgabe # 0, Bild2, an 'island_sizes-CSH (II) -085.png':
    Stream # 0: 0: Video: png, rgba, 800 × 600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 k tbn, 25 tbc
Ausgabe Nr. 1, Bild 2, an 'island_sizes-CSH (II) -086.png':
    Stream Nr. 1: 0: Video: png, rgba, 800 × 600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 k tbn, 25 tbc
...
Ausgabe Nr. 274, Bild 2, an 'island_sizes-CSH (II) -359.png':
    Stream Nr. 274: 0: Video: keine, rgba, 800 x 600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 ktbn, 25 tbc
Ausgabe Nr. 275, Bild 2, an 'island_sizes-CSH (II) -360.png':
    Stream Nr. 275: 0: Video: keine, rgba, 800 x 600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 k tbn, 25 tbc
Ausgabe # 276, mpeg, an 'video.mpg':
    Stream Nr. 276: 0: Video: keine, yuv420p, 800 x 600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 k tbn, 25 tbc
Stream-Mapping:
  Stream # 0: 0 -> # 0: 0 (png -> png)
  Stream # 0: 0 -> # 1: 0 (png -> png)
...
  Stream # 0: 0 -> # 274: 0 (png -> png)
  Stream # 0: 0 -> # 275: 0 (png -> png)
  Stream # 0: 0 -> # 276: 0 (png -> mpeg1video)
Fehler beim Öffnen des Encoders für den Ausgabestream Nr. 218: 0 - möglicherweise falsche Parameter wie Bitrate, Rate, Breite oder Höhe
Rhombidodekaeder
quelle
Von man mencoder: mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4, ähnlich für ffmpeg
Eddy_Em
1
@Eddy_Em Es ist nicht ähnlich für ffmpeg- mencoderhat leider eine völlig andere Syntax.
Slhck
1
Mencoder hat für mich gearbeitet! Vielen Dank. Es ist mir ehrlich gesagt egal, welches Programm ich benutze - nur, dass ich den Film bekomme.
Rhombidodekaeder

Antworten:

23

Dies ist die falsche Syntax für die Übergabe mehrerer Bilder als Eingabe an ffmpeg. Bitte lesen Sie die FFmpeg-Wiki-Anleitung zum Erstellen einer Video-Diashow und die image2Demuxer-Optionen .

Sie müssen ihm sagen, dass er drei Ziffern für die Sequenznummern verwenden soll, und bei 84 beginnen, d. H.

ffmpeg -start_number 84 -i island_sizes-CSH\(II\)-%03d.png output.mpg

Einige weitere Tipps:

  • MPEG-1 als Video-Codec ist nicht optimal und bietet bei hohen Dateigrößen eine schlechte Qualität. Es sei denn , Sie wollen die Kompatibilität für alte Geräte oder Computer (oder Windows XP ohne Codecs), Kratzer , dass und verwenden Sie einen MPEG-4 Part 10 - Encoder (H.264), wie zum Beispiel libx264:

    ffmpeg -i … -c:v libx264 out.mp4
    

    Ein Tutorial zu den x264-Optionen (Ändern der Qualität usw.) finden Sie in der x264-Codierungsanleitung .

  • PNG-Dateien verwenden ein RGB-Pixelformat, das in normalen Video-Codecs nicht unterstützt wird. Bei MPEG-1 spielt dies keine Rolle, bei MPEG-4-Codecs jedoch, da ffmpegdas Pixelformat automatisch in nicht unterabgetastetes YUV konvertiert wird. In diesem Fall müssen Sie dies in Chroma-Subsampled-Formate wie YUV 4: 2: 0 übersetzen, da Ihr Video sonst in den meisten Anwendungen möglicherweise nicht abgespielt wird:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    
slhck
quelle
Du. Ich mag dich.
Rhombidodekaeder