如何不编码获取头部不完整的WebM文件实际时长
获取头部不完整WebM文件的实际时长
可以用ffmpeg的空解析模式(不生成输出文件)来获取这个实际时长,无需对文件编码,具体操作如下:
- 执行以下命令,让ffmpeg遍历解析整个文件但不输出媒体内容:
ffmpeg -i broken.webm -f null - - 命令运行结束后,在终端输出的末尾信息里,就能找到类似
time=00:00:13.32的字段,这就是文件实际包含的媒体数据时长。
原理是:即便WebM文件头部缺失、ffprobe无法识别标准时长,ffmpeg在逐帧解析媒体流时,依然会累计计算出所有帧的总播放时长。而-f null -参数让ffmpeg仅完成解析计算,不生成任何输出文件,执行速度快且不会产生额外文件。
如果需要直接提取纯时长数值,可以结合文本过滤工具(如grep、awk)简化输出:
ffmpeg -i broken.webm -f null - 2>&1 | grep -oP 'time=\K[\d:.]+'
这条命令会直接输出类似00:00:13.32的纯时长字符串,方便后续脚本调用或直接使用。
内容的提问来源于stack exchange,提问作者Neil Hutcheon
相关产品推荐
相关产品推荐

