【发布时间】:2021-09-29 11:56:20
【问题描述】:
我正在尝试使用 ffprobe 按时长过滤视频。我正在使用:
vid_length = subprocess.call(f"ffprobe -i {local_vids_2[count]} -show_entries format=duration -v quiet -of csv='p=0'", shell = True)
print("VIDEO LENGTH IS:", vid_length, "FOR: ", count)
虽然我确实通过 shell 命令将持续时间打印到我的命令提示符,但我注意到我没有像我需要的那样将它作为变量返回。相反,它返回 0,所以我得到类似:VIDEO URL IS: 100_scaled.mp4 FOR: 0 11.883000 VIDEO LENGTH IS: 0 FOR: 0 和 VIDEO URL IS: 101_scaled.mp4 FOR: 1 56.171000 VIDEO LENGTH IS: 0 FOR: 1 等。
根据我在this post 中读到的内容,我也尝试过vid_length = subprocess.call(f"ffprobe -i {local_vids_2[count]} -show_entries format=duration -v quiet -of csv=%s % ('p=0')", shell = True),但这也没有奏效。
有没有办法让这个命令返回任何东西?还是我需要其他可以返回视频长度以用于编码目的的东西?谢谢。
【问题讨论】:
标签: python shell ffmpeg video-processing ffprobe