1

Я разрабатываю сервис для соединения видео (моего) с другим от пользователя (он или она загружает его) и возврата к пользователю.

Сначала я попытался использовать демультиплексор Concat, потому что я не хочу перекодировать видео, если оно не нужно. Предполагается, что с одним и тем же кодеком он должен соединять видео практически сразу.

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

Мой mylist.txt

file './myVideo1.mp4'
file './userVideo1.mp4'

Команда:

ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4

Это не сработало, потому что были разные аудиокодеки (pcm_u8 vs aac), поэтому я преобразовал звук myVideo1 в aac с;

ffmpeg -i myVideo1.mp4 -map 0:0 -map 0:1 -acodec libfaac -vcodec copy myVideo1_aac.mp4

Это была промежуточная задача, я упоминаю об этом, потому что у меня было предупреждение:

Кодек для потока 0 не использует глобальные заголовки, но формат контейнера требует глобальных заголовков

На данный момент у меня есть два видео с одинаковым аудио и кодеком, давайте посмотрим детали:myVideo1_aac.mp4 userVideo1.mp4 info

Я пытался объединить видео, как и раньше ...

ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4

... и не было никаких ошибок, но когда я проигрывал видео, я видел первое видео нормальным, однако второе было очень медленным, всего несколько кадров в секунду, фактически, mergedVideo.mp4 имеет 4 минуты и 34 секунды, когда должно быть 39 с (5,38 + 33,79).

Вот информация mergedVideo.mp4:

Можете ли вы сказать мне, что не так?

0