ffmpeg: проблема объединения видео с несколькими mp3 (atrim + concat) - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть видео, которое я хочу объединить с несколькими mp3-файлами.Mp3 файлы должны быть обрезаны перед объединением.Аудиофайлы должны заменять аудио во входящем видео в определенное время, в другое время - должно воспроизводиться оригинальное аудио из видео.

Я делаю это по команде:

ffmpeg -i inputVideo.ts \
-i audio1.mp3 \
-i audio2.mp3 \
-filter_complex "[0]atrim=0:6,asetpts=PTS-STARTPTS[part0];[1]atrim=17:31,asetpts=PTS-STARTPTS[part1];[0]atrim=20:39,asetpts=PTS-STARTPTS[part2];[2]atrim=108:144,asetpts=PTS-STARTPTS[part3];[2]atrim=153:172,asetpts=PTS-STARTPTS[part4];[part0][part1][part2][part3][part4]concat=n=5:v=0:a=1[aout]" \
-map 0:v \
-map [aout] \
-c:v copy \
-c:a aac \
-async 1000 \
out.ts

Проблемы:

  • Полученное видео (out.ts) выглядит поврежденным - его можно воспроизвести, но если я попытаюсь выполнить поиск (вперед / назад) - оно может остановить кадр и воспроизвестизвук.

  • Если я конвертирую out.ts в mp4 - конечная продолжительность будет больше, чем оригинальная (out.ts - 96 секунд, out.mp4 - 112 секунд).

Я преобразовываю с помощью этой команды:

ffmpeg -i out.ts -c copy -bsf:a aac_adtstoasc out.mp4

Другой вопрос: Что означает «начало» в строке продолжительности, например:

.tsфайл имеет продолжительность 01:36 и начало 1.45:

ffprobe out.ts

Duration: 00:01:36.18, start: 1.458667, bitrate: 1051 kb/s

.mp4 файл - 01:52 и начало 0

ffprobe out.mp4

Duration: 00:01:52.07, start: 0.000000, bitrate: 825 kb/s

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...