Обновление: я использовал более старую версию ffmpeg и у меня были проблемы с ней.

Обновление решило мою проблему, и мне больше не нужно использовать MP4Box для извлечения правильной видеодорожки.

Теперь мне просто любопытно, может ли MP4Box автоматически использовать TrackID видео после его обнаружения.


У меня были проблемы с извлечением необработанного файла h264 из mkv с помощью ffmpeg, поэтому я решил использовать MP4Box, и он работал хорошо.

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

@echo on
ffmpeg.exe -i "%1" -c copy -map 0:a? -f tee "[select='a\:0':onfail=ignore]"%~n1"_a0.aac|[select='a\:1':onfail=ignore]"%~n1"_a1.aac|[select='a\:2':onfail=ignore]"%~n1"_a2.aac|[select='a\:3':onfail=ignore]"%~n1"_a3.aac|[select='a\:4':onfail=ignore]"%~n1"_a4.aac|[select='a\:5':onfail=ignore]"%~n1"_a5.aac"

ffmpeg.exe -y -i "%1" -map 0:a? -map 0:v -c:v copy -c:a copy "%~n1.mp4"

MP4Box -add "%~n1.mp4"#video -raw %$2% -new "%~n1"

del /f "%~n1"

MP4Box -add "%~n1"_track%$2%.h264:fps=60 -new "%~n1"_fix.mp4

del /f "%~n1"_track%$2%.h264

Если я вписываю имя командного файла и mkv-файла в строку cmd, это работает нормально.

Но если я перетащу файл mkv в командный файл, он не сможет заменить% $ 2% на видео TrackID.

MP4Box -add "%~n1.mp4"#video -raw %$2% -new "%~n1"

Вывод этого упоминает правильный TrackID, но немедленно терпит неудачу. Есть ли лучший способ заставить MP4Box использовать правильный TrackID видео или запрашивать ввод пользователя после отображения идентификатора?

Спасибо.

0