Użycie ffmpeg do zrobienia filmu z plików png

11

Mam 277 plików 800 x 600 png z nazwami plików w formacie island_sizes-CSH (II) - ###. Png, gdzie ### to liczba zaczynająca się od 084 i kończąca się na 360.

robię

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

ale to nie działa:

ffmpeg -f obraz2 -i rozmiary_ wysp-CSH \ (II \) - *. png wideo.mpg -y
ffmpeg wersja 1.2.1 Copyright (c) 2000-2013 deweloperzy FFmpeg
  zbudowany 10 maja 2013 15:14:14 z gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  konfiguracja: --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 - wyjątki - fstack-protector --param = rozmiar bufora ssp = 4 -m64 -mtune = rodzajowy -fPIC '- wyłączanie usuwania
  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
Wpisz nr 0, image2 z 'island_sizes-CSH (II) -084.png':
  Czas trwania: 00: 00: 00.04, początek: 0,000000, szybkość transmisji: nie dotyczy
    Strumień # 0: 0: Wideo: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init nie powiodło się
Wyjście # 0, image2, do 'island_sizes-CSH (II) -085.png':
    Strumień 0: 0: Wideo: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 kb, 25 tbc
Wyjście # 1, image2, do 'island_sizes-CSH (II) -086.png':
    Strumień 1: 0: Wideo: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 kb, 25 tbc
...
Wyjście # 274, image2, do 'island_sizes-CSH (II) -359.png':
    Strumień # 274: 0: Wideo: brak, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 kb, 25 tbc
Wyjście # 275, image2, do 'island_sizes-CSH (II) -360.png':
    Strumień # 275: 0: Wideo: brak, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 kb / s, 25 tbc
Wyjście # 276, MPEG, do 'video.mpg':
    Strumień # 276: 0: Wideo: brak, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90 kb / s, 25 tbc
Mapowanie strumienia:
  Strumień # 0: 0 -> # 0: 0 (png -> png)
  Strumień # 0: 0 -> # 1: 0 (png -> png)
...
  Strumień # 0: 0 -> # 274: 0 (png -> png)
  Strumień # 0: 0 -> # 275: 0 (png -> png)
  Strumień # 0: 0 -> # 276: 0 (png -> mpeg1video)
Błąd podczas otwierania enkodera dla strumienia wyjściowego # 218: 0 - być może niepoprawne parametry, takie jak bit_rate, szybkość, szerokość lub wysokość
rombidodekeded
źródło
Od man mencoder: mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4podobny do ffmpeg
Eddy_Em
1
@Eddy_Em Nie jest podobny ffmpeg- mencoderma niestety zupełnie inną składnię.
slhck
1
mencoder pracował dla mnie! Dzięki. Szczerze mówiąc, nie obchodzi mnie, jakiego programu używam - tylko to, że dostaję film.
rhombidodecahedron

Odpowiedzi:

23

Jest to zła składnia do przekazywania wielu obrazów jako danych wejściowych ffmpeg. Zapoznaj się z przewodnikiem Wiki FFmpeg na temat tworzenia pokazu wideo i image2opcji demuxera .

Musisz powiedzieć mu, aby używał trzech cyfr dla numerów sekwencyjnych i zaczął od 84, tj

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

Kilka dalszych wskazówek:

  • MPEG-1 jako kodek wideo jest mniej niż optymalny i zapewnia złą jakość przy dużych rozmiarach plików. O ile nie chcesz kompatybilności ze starymi urządzeniami lub komputerami (lub Windows XP bez żadnych kodeków), podrap i użyj kodera MPEG-4 część 10 (H.264), takiego jak libx264:

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

    Samouczek na temat opcji x264 (jak zmienić jakość itp.) Znajduje się w przewodniku kodowania x264 .

  • Pliki PNG używają formatu pikseli RGB, który nie jest obsługiwany w normalnych kodekach wideo. W przypadku MPEG-1 nie ma to znaczenia, ale w przypadku kodeków MPEG-4 miałoby to znaczenie, ponieważ ffmpegautomatycznie konwertowałby format pikseli na YUV bez podpróbkowania. W takim przypadku musisz przetłumaczyć to na formaty z podpróbką kolorów, takie jak YUV 4: 2: 0, w przeciwnym razie Twój film może nie być odtwarzany w większości aplikacji:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    
slhck
źródło
Ty. Lubię cię.
rhombidodecahedron