我有一个带有不完全头的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值的方法?
发布于 2022-08-17 21:52:20
您可以使用python和opencv获取视频的详细信息,然后将它们传递给:
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")
发布于 2022-08-18 00:03:45
试一试
ffprobe -hide_banner -loglevel quiet \
-of default=nk=1:nw=1 -show_entries format=duration INPUT_FILE
此命令只打印总持续时间(以秒为单位)。
发布于 2022-08-18 15:38:30
我获悉:
ffprobe -v 0 -hide_banner -of compact=p=0:nk=1 -show_entries packet=pts_time -read_intervals 99999%+#1000 input.webm | tail -1
将返回最后一个数据包的时间戳。这就是我要找的。
https://stackoverflow.com/questions/73395207
复制相似问题