如何使用ffmpeg获取mp4容器的任何流的持续时间?

问题描述 投票:0回答:2

我不确定,但以下命令似乎就是这样做的。这里我得到mp4文件的第一个音频流的持续时间:

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

但是,我正在寻找与ffmpeg等效的(如果它存在)。如果用ffmpeg无法做到这一点,你的答案同样有效。

video ffmpeg ffprobe
2个回答
1
投票

使用

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
投票

。使用FFmpeg获取媒体文件的持续时间,你可以这样做:

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

有关Map option.的进一步阅读

Source

© www.soinside.com 2019 - 2024. All rights reserved.