如何使用mediainfo以秒或其他格式查找视频文件的持续时间?

Har*_*rma 4 video multimedia ffmpeg mediainfo ffprobe

如何以毫秒为单位查找视频文件的持续时间,即以确定的方式以整数形式查找.我使用ffprobe来获取持续时间,但它没有给出所有文件格式的持续时间.

Har*_*rma 18

使用以下命令:

i)获取视频流的持续时间:

$ mediainfo --Inform="Video;%Duration%"  [inputfile]
Run Code Online (Sandbox Code Playgroud)

ii)获取媒体文件的持续时间:

$ mediainfo --Inform="General;%Duration%" [inputfile]
Run Code Online (Sandbox Code Playgroud)

iii)仅获取音频流的持续时间:

$ mediainfo --Inform="Audio;%Duration%" [inputfile]
Run Code Online (Sandbox Code Playgroud)

iv)获取多个参数的值:

$ mediainfo --Inform="Video;%Width%,%Height%,%BitRate%,%FrameRate%" [inputfile]
Run Code Online (Sandbox Code Playgroud)

输出将是这样的:

1280,720,3000000,30.0
Run Code Online (Sandbox Code Playgroud)


Ili*_*sev 5

iota提供使用mediainfo --Inform="Video;%Duration%" [inputfile],可能但返回奇怪的结果.

例如,对于持续时间为31s 565ms的视频,给定命令的输出将为:

31565
Run Code Online (Sandbox Code Playgroud)

它不适合我,我想出了以下解决方案:

mediainfo --Inform="Video;%Duration/String3%" inputExample.webm
Run Code Online (Sandbox Code Playgroud)

返回值是:

00:00:31.565
Run Code Online (Sandbox Code Playgroud)

毕竟,您可以将返回值格式化,例如PHP,将其转换为,例如:

$parsed = date_parse( '00:00:31.565' );
echo $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];
Run Code Online (Sandbox Code Playgroud)

Example