Как получить длительность любого потока контейнера mp4 с помощью ffmpeg? - PullRequest
0 голосов
/ 07 марта 2019

Я не уверен, но следующая команда, кажется, делает именно это.Здесь я получаю длительность первого аудиопотока файла mp4:

ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 -i input.mp4

Однако я ищу эквивалент с ffmpeg (если он существует).Ваш ответ одинаково действителен, если вы не можете сделать это с ffmpeg.

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Используйте

ffmpeg -i input.mp4 -c copy -map 0:v:3 -f null - 2>&1 | tail -3 | grep -oP "(?<=time=).+?\s"

0:v:3 выберет четвертый видеопоток. Если он существует, вывод будет продолжительностью, например, 00:02:57.64

Если его не существует, вывод будет пустым.

0 голосов
/ 07 марта 2019

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

ffmpeg -i inputfile -map 0:0 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//

Подробнее о параметре Карта.

Источник .

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