Использование ffmpeg для создания фильма из png-файлов

У меня есть 277 800x600 png файлов с именами файлов в формате island_sizes-CSH (II) - ###. png где ### - число, начинающееся с 084 и заканчивающееся на 360.

Я делаю

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

, но он не работает:

ffmpeg -f image2 -i island_sizes-CSH \ (II \) - * .png video.mpg -y
ffmpeg версия 1.2.1 Авторские права (c) 2000-2013 разработчики FFmpeg
  построенный 10 мая 2013 года 15:14:14 с gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  Конфигурация: --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-debipping
  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
Введите # 0, image2, from 'island_sizes-CSH (II) -084.png':
  Продолжительность: 00: 00: 00.04, начало: 0,000000, битрейт: N /A
    Поток № 0: 0: видео: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init не удалось
Выход # 0, image2, 'island_sizes-CSH (II) -085.png':
    Поток № 0: 0: видео: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb /s, 90k tbn, 25 tbc
Выход # 1, image2, 'island_sizes-CSH (II) -086.png':
    Поток № 1: 0: видео: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb /s, 90k tbn, 25 tbc
...
Выход # 274, image2, на 'island_sizes-CSH (II) -359.png':
    Поток № 274: 0: видео: нет, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb /s, 90k tbn, 25 tbc
Выход # 275, image2, в 'island_sizes-CSH (II) -360.png':
    Поток № 275: 0: видео: нет, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb /s, 90k tbn, 25 tbc
Выход # 276, mpeg, to video.mpg:
    Поток № 276: 0: видео: нет, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb /s, 90k tbn, 25 tbc
Отображение потока:
  Поток # 0: 0 -> # 0: 0 (png -> png)
  Поток # 0: 0 -> # 1: 0 (png -> png)
...
  Поток # 0: 0 -> # 274: 0 (png -> png)
  Поток # 0: 0 -> # 275: 0 (png -> png)
  Поток # 0: 0 -> # 276: 0 (png -> mpeg1video)
Ошибка при открытии энкодера для выходного потока # 218: 0 - возможно, неправильные параметры, такие как бит_трект, скорость, ширина или высота
9 голосов | спросил rhombidodecahedron 17 J000000Wednesday13 2013, 22:33:12

1 ответ


23

Это неправильный синтаксис для передачи нескольких изображений в качестве входных данных в ffmpeg. Пожалуйста, ознакомьтесь с руководством FFmpeg Wiki на создании видео слайдшоу и image2 demuxer options .

Вам нужно сказать, чтобы он использовал три цифры для порядковых номеров и начинался с 84, т. е.

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

Некоторые дополнительные советы:

  • MPEG-1 в качестве видеокодека менее оптимален и дает вам плохое качество при высоких размерах файлов. Если вам не нужна совместимость для старых устройств или компьютеров (или Windows XP без каких-либо кодеков), поцарапайте их и используйте кодировщик MPEG-4 Part 10 (H.264), например libx264:

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

    Для руководства по параметрам x264 (как изменить качество и т. д.) проверьте руководство по кодированию x264 .

  • PNG-файлы используют формат пикселов RGB, который не поддерживается в обычных видеокодеках. С MPEG-1 это не имеет значения, но с кодеками MPEG-4 это было бы, поскольку ffmpeg автоматически преобразует формат пикселя в не- подвыборки YUV. В этом случае вам нужно перевести это на формат с цветовой субсферой , такой как YUV 4: 2: 0 , иначе ваше видео может не воспроизводиться в большинстве приложений:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    
ответил slhck 17 J000000Wednesday13 2013, 22:47:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132