Я хочу объединить 3 файла, но каждый файл имеет свой формат сжатия (xvideo, theora, x264), и они имеют разное разрешение. Я использовал это руководство раньше, но насколько я знаю, это только тогда, когда видео форматы одинаковы.

Плюс при подключении хочу поменять разрешение видео и использовать libx264 1500K

заранее спасибо

вывод ffmpeg

ffmpeg -i '/home/levan/log.ogv' -i '/home/levan/Videos/2.m4v' -i '/home/levan/Comp 1.mp4' 
ffmpeg version 2.4.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov  1 2014 23:29:20 with gcc 4.9.1 (Ubuntu 4.9.1-16ubuntu6)
  configuration: --prefix=/home/levan/ffmpeg_build --extra-cflags=-I/home/levan/ffmpeg_build/include --extra-ldflags=-L/home/levan/ffmpeg_build/lib --bindir=/home/levan/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      54. 11.100 / 54. 11.100
  libavcodec     56. 10.100 / 56. 10.100
  libavformat    56. 11.101 / 56. 11.101
  libavdevice    56.  2.100 / 56.  2.100
  libavfilter     5.  2.101 /  5.  2.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, ogg, from '/home/levan/log.ogv':
  Duration: 00:00:01.73, start: 0.000000, bitrate: 729 kb/s
    Stream #0:0(und): Video: theora, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 30 tbn, 30 tbc
    Metadata:
      LANGUAGE        : und
      HANDLER_NAME    : VideoHandler
      ENCODER         : Lavc56.10.100 libtheora
      MAJOR_BRAND     : isom
      MINOR_VERSION   : 512
      COMPATIBLE_BRANDS: isomiso2avc1mp41
    Stream #0:1(und): Audio: vorbis, 48000 Hz, stereo, fltp, 160 kb/s
    Metadata:
      LANGUAGE        : und
      HANDLER_NAME    : SoundHandler
      ENCODER         : Lavc56.10.100 libvorbis
      MAJOR_BRAND     : isom
      MINOR_VERSION   : 512
      COMPATIBLE_BRANDS: isomiso2avc1mp41
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/home/levan/Videos/2.m4v':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : 2
    encoder         : HandBrake 6681svn 2015010301
  Duration: 00:37:39.40, start: 10.169000, bitrate: 4495 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 960x544 [SAR 1:1 DAR 30:17], 4327 kb/s, 58.24 fps, 1 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 154 kb/s (default)
    Metadata:
      handler_name    : Stereo
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '/home/levan/Comp 1.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2014-07-17 02:14:45
  Duration: 00:00:05.03, start: 0.033333, bitrate: 17184 kb/s
    Stream #2:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 17168 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2014-07-17 02:14:45
      handler_name    : ?Mainconcept Video Media Handler
      encoder         : AVC Coding

1 ответ1

5
ffmpeg -i log.ogv -i 2.m4v -i 1.mp4 -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v0]; \
 [1:v]scale=-2:1080,pad=1920:ih:(ow-iw)/2:0,setsar=1/1,setpts=PTS-STARTPTS[v1]; \
 [2:v]setpts=PTS-STARTPTS[v2]; \
 [v0][0:a][v1][1:a][v2][2:a]concat=n=3:v=1:a=1[v][a]" \
 -map "[v]" -map "[a]" output.mp4
  • setpts - Сброс отметки времени для concat .

  • scale - Ускорение меньшего видео, чтобы соответствовать другим. В качестве альтернативы вы можете уменьшить масштаб других видео до 960x544.

  • pad - Добавить отступы; в противном случае это закончилось бы как 1906x1080. В качестве альтернативы вы можете использовать scale=1920:-2,crop=iw:720 (масштаб приведет к 1920x1088) и обрезать лишние 8 пикселей вместо пэда.

  • setsar - Установите примерное соотношение сторон, чтобы оно было таким же, как и у других видео.

  • concat - объединить все

К сожалению, я не могу проверить этот пример прямо сейчас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .