首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在未显式定义工期时获取webm视频文件的持续时间

如何在未显式定义工期时获取webm视频文件的持续时间
EN

Stack Overflow用户
提问于 2022-08-17 21:41:22
回答 3查看 241关注 0票数 -1

我有一个带有不完全头的webm文件段,我想通过从文件的前面剪裁x秒来将这个段削减到10秒,但是我无法使用-sseof标记,因为文件的末尾没有定义。我发现,如果我要求ffmpeg从文件中提取音频或视频,它会用一些数据来响应-- size=212kB time=00:00:13.32 bitrate= 130.2kbits/s speed=1.79e+03x video:0kB audio:210kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.991311%的行数显示文件中有13.32秒的数据,但是如果我对文件长度使用ff探针,它会用N/A回答。是否有一种无需编码webm文件就可以自行获得13.32值的方法?

EN

回答 3

Stack Overflow用户

发布于 2022-08-17 21:52:20

您可以使用python和opencv获取视频的详细信息,然后将它们传递给:

代码语言:javascript
运行
复制
import cv2
file = os.path.basename(filename)
video_file = filename
cap = cv2.VideoCapture(video_file)

# get video details
framespersecond= int(cap.get(cv2.CAP_PROP_FPS))
video_total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = video_total_frames/framespersecond
end_time = duration - 10

# Something like this to clip with ffmpeg.
ffmpeg_extract_subclip(file, start_time, end_time, targetname="test.mp4")
票数 0
EN

Stack Overflow用户

发布于 2022-08-18 00:03:45

试一试

代码语言:javascript
运行
复制
ffprobe -hide_banner -loglevel quiet \
        -of default=nk=1:nw=1 -show_entries format=duration INPUT_FILE

此命令只打印总持续时间(以秒为单位)。

票数 0
EN

Stack Overflow用户

发布于 2022-08-18 15:38:30

我获悉:

代码语言:javascript
运行
复制
ffprobe -v 0 -hide_banner -of compact=p=0:nk=1 -show_entries packet=pts_time -read_intervals 99999%+#1000 input.webm | tail -1

将返回最后一个数据包的时间戳。这就是我要找的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73395207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档