LINUX.ORG.RU

Объединение нескольких Webm-видео файлов в один с помощью ffmpeg

 , ,


0

1

Приветствую!

Подскажите, может кто-то сталкивался с подобной задачей?

Есть несколько фалов в формате webm (к примеру 3 штуки 1.webm, 2.webm,3.webm) мне нужно склеить их по порядку 1+2+3, и на выходе получить общий out.webm. Характеристика видео одинаковые, ниже вывод ffmpeg-a:

$ ffmpeg -i 1.webm
ffmpeg version 1.0.8 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 12 2013 11:57:09 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libfdk-aac --enable-libdc1394 --disable-altivec --dis  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, matroska,webm, from '1.webm':
  Duration: 00:00:16.02, start: 0.000000, bitrate: 263 kb/s
    Stream #0:0: Video: vp8, yuv420p, 352x288, SAR 1:1 DAR 11:9, 1.56 fps, 1.56 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1: Audio: vorbis, 44100 Hz, mono, s16 (default)
At least one output file must be specified

Уже все перепробовал, склеить не удалось. В документации подобного не нашел, полагаю что просто не там ищу. Аналогичную задачу с mp4 решил, но как приложить это решение к данной проблеме понять не могу. решение для mp4:

ffmpeg -i 1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i 2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc out.mp4

Может кто подскажет, что я пропустил? Или может лучше использовать что-то отличное от ffmpeg?


mkvmerge используй лучше (есть гуй mmg).

Gicdillah ()
Ответ на: комментарий от fopen

ФФсутра в трех позах: How to concatenate (join, merge) media files

Да.

Или может лучше использовать что-то отличное от ffmpeg?

Нет, ffmpeg - труЪ. В том числе для таких вещей.

Krieger_Od ★★ ()

ffmpeg -f concat -i 'in.txt' -c copy out.mp4

где in.txt содержит

file '1.mp4'

file '2.mp4'

Только сборки ffmpeg из репозитариев обычно кривые и не понимают -f concat, но можно пользоваться Static FFmpeg builds

Golem_ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.