如何从ffmpeg输出中提取持续时间?

要获取有关媒体文件的大量信息,可以做


ffmpeg -i <filename>

它会输出很多行,特别是一行


Duration: 00:08:07.98, start: 0.000000, bitrate: 2080 kb/s

我只想输出00:08:07.98,所以我尝试


ffmpeg -i file.mp4 | grep Duration| sed 's/Duration: \(.*\), start/\1/g'

但是它可以打印所有内容,而不仅仅是长度。


甚至ffmpeg -i file.mp4 | grep Duration输出所有内容。


如何获得持续时间长度?


梦里花落0921
浏览 951回答 3
3回答

www说

ffmpeg正在将该信息写入,而stderr不是stdout。尝试这个:ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'注意重定向stderr到stdout:2>&1编辑:您的sed陈述也不起作用。尝试这个:ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
打开App,查看更多内容
随时随地看视频慕课网APP