Usando ffmpeg per fare un film da file png


11

Ho 277 file png 800x600 con nomi di file con il formato island_sizes-CSH (II) - ###. Png dove ### è un numero che inizia con 084 e termina con 360.

sto facendo

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

ma non funziona:

ffmpeg -f image2 -i island_sizes-CSH \ (II \) - *. png video.mpg -y
ffmpeg versione 1.2.1 Copyright (c) 2000-2013 gli sviluppatori FFmpeg
  costruito il 10 maggio 2013 15:14:14 con gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  configurazione: --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 = generico -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
Input # 0, image2, da 'island_sizes-CSH (II) -084.png':
  Durata: 00: 00: 00.04, inizio: 0.000000, bitrate: N / A
    Stream # 0: 0: Video: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init non riuscito
Uscita n. 0, immagine2, su "island_sizes-CSH (II) -085.png":
    Stream # 0: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Uscita n. 1, immagine2, a "island_sizes-CSH (II) -086.png":
    Stream # 1: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
...
Uscita # 274, image2, a 'island_sizes-CSH (II) -359.png':
    Stream # 274: 0: Video: none, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Uscita # 275, image2, a 'island_sizes-CSH (II) -360.png':
    Stream # 275: 0: Video: none, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Uscita # 276, mpeg, su "video.mpg":
    Stream # 276: 0: Video: nessuno, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Mappatura stream:
  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)
Errore durante l'apertura dell'encoder per il flusso di output # 218: 0 - forse parametri errati come bit_rate, velocità, larghezza o altezza

Da man mencoder: mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4, simile per ffmpeg
Eddy_Em

1
@Eddy_Em Non è simile per ffmpeg- mencoderha una sintassi completamente diversa, sfortunatamente.
Slhck,

1
mencoder ha funzionato per me! Grazie. Sinceramente non mi interessa quale programma utilizzi - solo che ottengo il film.
rhombidodecahedron,

Risposte:


23

Questa è la sintassi sbagliata per il passaggio di più immagini come input a ffmpeg. Dai un'occhiata alla guida Wiki FFmpeg sulla creazione di una presentazione video e le image2opzioni di demuxer .

Devi dirgli di usare tre cifre per i numeri di sequenza e iniziare da 84, cioè

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

Alcuni ulteriori suggerimenti:

  • MPEG-1 come codec video non è ottimale e offre una cattiva qualità a file di dimensioni elevate. A meno che non si desideri la compatibilità per vecchi dispositivi o computer (o Windows XP senza codec), grattarlo e utilizzare un codificatore MPEG-4 Part 10 (H.264), come libx264:

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

    Per un'esercitazione sulle opzioni x264 (come modificare la qualità, ecc.) Consulta la guida alla codifica x264 .

  • I file PNG utilizzano un formato pixel RGB, che non è supportato nei normali codec video. Con MPEG-1 non importa, ma con i codec MPEG-4 lo farebbe, poiché ffmpegconvertirà automaticamente il formato pixel in YUV non sottocampionato. In tal caso, devi tradurlo in formati sottoposti a campionamento cromatico come YUV 4: 2: 0, altrimenti il ​​tuo video potrebbe non essere riprodotto nella maggior parte delle applicazioni:

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

Voi. Mi piaci.
rhombidodecahedron,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.