2016-12-31 8 views
0

Я блокировал пытается сделать что-то, и я готов сделать пожертвование, если кто-то может помочь мне:Concat MP4 файлы с помощью инструмента командной строки

Я стараюсь Concat http://s.serero.free.fr/rolex.mp4 видео и http://s.serero.free.fr/video.mp4 видео в один выходной mp4, и я пробовал в течение длительного времени без каких-либо результатов.

Я хочу Concat http://s.serero.free.fr/rolex.mp4 + http://s.serero.free.fr/video.mp4 или http://s.serero.free.fr/video.mp4 + http://s.serero.free.fr/rolex.mp4.

Я пробовал с программным обеспечением командной строки ffmpeg и с программным обеспечением командной строки mp4box, я думаю, что у меня нет хорошего метода.

Я пытался превратить http://s.serero.free.fr/video.mp4 в том же формате http://s.serero.free.fr/rolex.mp4 (и наоборот):

я преобразованный http://s.serero.free.fr/rolex.mp4 с той же частотой кадров http://s.serero.free.fr/video.mp4

я преобразованным http://s.serero.free.fr/rolex.mp4 с таким же видео битрейтом http://s.serero.free.fr/video.mp4

I преобразованный http://s.serero.free.fr/rolex.mp4 с тем же видео аудио битрейт http://s.serero.free.fr/video.mp4

Может кто-нибудь мне помочь?

Объясните мне, что не так в моей стратегии?

ответ

1

Ваши входные параметры меняются, поэтому вы должны сделать их похожими до конкатенации.

  • rolex.mp4

    Video: h264 (Main) (avc1/0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 835 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default) 
    Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default) 
    
  • video.mp4

    Video: h264 (High) (avc1/0x31637661), yuvj420p(pc), 1152x720, 1749 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default) 
    Audio: mp3 (mp4a/0x6134706D), 44100 Hz, stereo, s16p, 127 kb/s (default) 
    

Этот пример заставит video.mp4 больше как rolex.mp4 то CONCAT них:

ffmpeg -i rolex.mp4 -i video.mp4 -filter_complex \ 
"[1:v]pad=1280:720:(ow-iw)/2:0,fps=25,format=yuv420p[v1]; \ 
[0:v][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" \ 
-map "[v]" -map "[a]" output.mp4 

, Вам не нужно объявлять fps или format, потому что, как concat filter documentation состояний:

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

... но при этом вы можете вручную выбрать «общие» настройки вместо того, чтобы полагаться на фильтр, автоматически сделавший это и потенциально выбрав нужный параметр.

+0

Спасибо, что постарались мне помочь, но ffmeg показать мне эту ошибку: http://s.serero.free.fr/err.png – user1018697

0

Спасибо за LordNeckbeard за его прекрасный ответ, он просто дайте маленькую ошибку на команду, я просто хочу немного объяснений:

Если я хочу Concat video.mp4 (1152X720) с rolex.mp4 (1280X720), мы должны понимать, что «video.mp4» является основным видео, поэтому видео (ы) для конкатене должно иметь точно такой же размер кадра.

Поэтому, прежде чем сделать эту операцию, необходимо изменить размер rolex.mp4 видео с таким же размером, как video.mp4 с FFmpeg:

FFmpeg -i rolex.mp4 -s 1152x720 -c: копия newrolexsized.mp4

Нет video.mp4 и newrolexsized.mp4 имеет тот же размер кадра, и вы можете использовать команду (spcifying пэд = 1152: 720 => размер основного видео):

FFmpeg -i video.mp4 -i newrolexsized.mp4 -filter_complex "[1: v] pad = 1152: 720: (ow-iw)/2: 0, fps = 25, format = yuv420p [v1]; [0: v] [0: a] [v1] [1: a] concat = n = 2: v = 1: a = 1 [v] [a] "-map" [v] "-map" [a] "out.mp4

+1

Его команда верна. Вы переключили порядок входов от этого в своей команде. В вашем случае rolex.mp4 является вторым входом. – Mulvya