ffmpeg зависает при создании видео

изображений

Я пытаюсь вставить аудиоканал с видео:

  1. Прежде всего я извлекаю аудио из оригинального видео для обработки:

    ffmpeg -i lotr.mp4 lotr.wav

  2. Затем я извлекаю все кадры для последующей обработки:

    ffmpeg -i lotr.mp4 -f image2% d.jpg

  3. По окончании обработки аудио и видео потоков я пытаюсь создать видео

    ffmpeg -f image2 -r 15 -i% d.jpg new.mp4

  4. затем объединить с аудио:

    ffmpeg -i new.mp4 -i lotr.wav -map 0: 0 -map 1: 0 new_w_audio.mp4

Результат: активность процессора = 100%, процесс зависает и никогда не возвращается.
PS: Я даже попробовал это без изменения изображений или аудио (поэтому просто пытаюсь распаковать, а затем перепаковать видео), но все равно тот же вывод

FFmpeg версия SVN-r26400, Copyright (c) 2000-2011 разработчики FFmpeg
  построено 18 января 2011 04:07:05 с gcc 4.4.2
  конфигурация: --enable-gpl --enable-version3 --enable-libgsm --enable-libvorb
является --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg
 --enable-libschroedinger --enable-libopencore_amrwb --enable-libopencore_amrnb
--enable-libvpx --disable-decoder = libvpx --arch = x86 --enable-runtime-cpudetect -
-enable-libxvid --enable-libx264 --enable-librtmp --extra-libs = '- lrtmp -lpolarss
l -lws2_32 -lwinmm '--target-os = mingw32 --enable-avisynth --enable-w32threads -
перекрестный префикс = i686-mingw32- --cc = 'ccache i686-mingw32-gcc' --enable-memalign-hack

  либавутил 50,36. 0 / 50,36. 0
  libavcore 0,16. 1 / 0,16. 1
  libavcodec 52.108. 0 / 52.108. 0
  libavformat 52,93. 0 / 52,93. 0
  libavdevice 52. 2. 3 / 52. 2. 3
  libavfilter 1.74. 0 / 1,74. 0
  libswscale 0,12. 0 / 0,12. 0
Введите # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из 'new.mp4':
  Метаданные:
    major_brand: isom
    несовершеннолетняя_версия: 512
    compatibility_brands: isomiso2mp41
    Время создания: 1970-01-01 00:00:00
    кодировщик: Lavf52.93.0
  Продолжительность: 00: 00: 29,66, старт: 0,000000, битрейт: 193 кбит / с
    Поток # 0.0 (und): Видео: mpeg4, yuv420p, 200x134 [PAR 1: 1 DAR 100: 67], 192 k
б / с, 15 к / с, 15 тбр, 15 тбн, 15 тбк
    Метаданные:
      Время создания: 1970-01-01 00:00:00
[wav @ 01fed010] max_analyze_duration достигнут
Введите # 1, wav, из 'lotr.wav':
  Продолжительность: 00: 00: 29,90, битрейт: 176 кбит / с
    Поток # 1.0: аудио: pcm_s16le, 11025 Гц, 1 канал, s16, 176 кбит / с
Файл 'new_w_audio.mp4' уже существует. Перезаписать? [год / год] год
[буфер @ 01b03820] ш: 200 ч: 134 пикс. / мин: yuv420p
Выведите # 0, mp4, в 'new_w_audio.mp4':
  Метаданные:
    major_brand: isom
    несовершеннолетняя_версия: 512
    compatibility_brands: isomiso2mp41
    Время создания: 1970-01-01 00:00:00
    кодировщик: Lavf52.93.0
    Поток # 0.0 (und): Видео: mpeg4, yuv420p, 200x134 [PAR 1: 1 DAR 100: 67], q = 2-3
1, 200 кб / с, 15 тбн, 15 тбк
    Метаданные:
      Время создания: 1970-01-01 00:00:00
    Поток # 0.1: Аудио: aac, 11025 Гц, 1 канал, s16, 64 кбит / с
Отображение потока:
  Поток № 0.0 -> # 0.0
  Поток № 1.0 -> # 0,1
Нажмите [q], чтобы остановить кодирование

У нас есть несколько ответов на данный вопрос для Вас.

Лучший ответ:

Может быть несколько вещей. Обычно при работе с несжатыми видеокодеками часто происходит зависание. Не уверен, что я прочитал там оригинальное видео в кодеке yuv420p. Возможно, он зависает при попытке обработки большого объема памяти или при непосредственном сжатии изображений в mp4. Одна вещь, о которой я могу думать, – это сначала преобразовать в avi, то есть вывести в avi, но принудительно использовать кодек без потерь, такой как camtasia / camstudio (я думаю, что ffmpeg его поддерживает), поэтому он не такой «тяжелый», а затем выполнить вторую операцию конвертировать в mp4. Другое дело … -r15? Вы наверняка знаете лучше, на каком fps находится оригинальное видео, но раньше это было 24fps или около того, не так ли?

Кроме того … Вы можете также использовать выходной кодек, а не только формат. MP4 очень хорошо работает с кодеком .h264, который дает много качества и невероятно маленький размер. Если я хорошо помню, ffmpeg также поддерживает это. (вы можете попробовать это в первую очередь …)

Изменить: Помните, -кодеки дает вам список кодеков, в командной строке. Конечно, вы можете, например, в консоли Win, ffmpeg -codecs > codecs.txt для облегчения чтения, поиска и т. д. Полезно использовать также с -форматами и т. д.


Другой ответ

Попробуйте обновить до последней версии ffmpeg.


Источник

Leave a Reply