2014-02-04 4 views
1

Я хочу отредактировать входной файл mp4 со звуковыми потоками видеопотоков, я могу успешно отрезать видео и аудиопотоки: 1- Преобразование каждой части в новый файл mp4 2- Преобразование mp4 файлы миль на галлон файлыВырезать части файла субтитров с помощью FFMPEG

ffmpeg -i out00.mp4 -qscale:v 0 intermediate1.mpg 
ffmpeg -i out01.mp4 -qscale:v 0 intermediate2.mpg 

3- Merge миль на галлон файлы

ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg 

4- Преобразовать файл обратно миль на галлон в mp4

ffmpeg -i intermediate_all.mpg -f mp4 output.mp4 

и я могу извлечь поток субтитров в файл srt, но я не могу разрезать части файла субтитров, есть ли у вас идея, как это сделать?

+0

Offtopic: Этот вопрос, похоже, не связан с программированием в пределах области, определенной в [справочном центре] (http://stackoverflow.com/help/on-topic). Ваш вопрос может быть проголосован/помечен для перехода на [su]. Вы всегда должны включать полный вывод консоли 'ffmpeg'. – LordNeckbeard

ответ

2

Хорошо это работает после долгих поисков поездки, вот что я сделал:

1- Скачать последнюю FFMPEG из here (это вызывало у меня много проблем).

2- Добавьте подзаголовок входных файлов:

ffmpeg -i "input.mkv" -i subtitles.srt -c copy -c:s srt -metadata:s:s:1 language=eng -map 0 -map 1 -map_metadata 0 output.mkv 

3- срезанные части, то вам, как вы делали обычно FFmpeg сократят поток субтитров также

ffmpeg -i input.mkv -ss 00:00:00 -t 00:01:35 -c copy -map 0:0 -map 0:1 -map 0:2 -qscale:0:V 0 -y out0.mkv 

4- Регистрация разреза файлы с помощью Concat демультиплексора:

ffmpeg -f concat -i mylist.txt -c copy output.mkv 

где mylist.txt содержит:

файл out0.mkv

файл out1.mkv

И наслаждайтесь :).

1

Я думаю, вы должны отредактировать SRT вручную (текст и таймкод текст должен появиться в) и ремультиплексирования его в окончательном видео с помощью следующей команды:

ffmpeg -i EditedSource.mp4 -i EditedSub.srt -c copy -map 0:a -map 0:v -map 1:s output.mp4 

И вместо того, чтобы создавать эти промежуточные файлы , вы пробовали:

ffmpeg -i out00.mp4 -i out01.mp4 -filter_complex '[0][1]concat=n=2:v=1:a=1 [v][a]' -map '[v]' -map '[a]' output.mp4 
+0

Я пытаюсь сделать это, используя ffmpeg not manual, Я попробую команду для конкат-файлов и вернусь к вам, спасибо. – Anas

+0

работает после нескольких обновлений: ffmpeg -i out0.mkv -i out1.mkv -filter_complex "[0: 0] [0: 1] [0: 2] [1: 0] [1: 1] [1: 2] concat = n = 2: v = 1: a = 1 [v] [a] "-map [v] -map [a] -y output.mkv – Anas

Смежные вопросы