0
我需要获取Django应用程序视频的持续时间。所以我将不得不在Python中这样做。但我真的是一个初学者。所以,如果你能提供帮助,那将会很好。通过Python获取avconv视频 - 持续时间
这是我走到这一步:
import subprocess
task = subprocess.Popen("avconv -i video.mp4 2>&1 | grep Duration | cut -d ' ' -f 4 | sed -r 's/([^\.]*)\..*/\1/'", shell=True, stdout=subprocess.PIPE)
time = task.communicate()[0]
print time
我想,因为我使用媒体链接这在另一点与avconv来解决这个问题。 shell命令到目前为止效果很好,给了我一个输出: HH:MM:SS。
但是当我执行Python代码时,我只是在shell上得到一个不可解释的符号。
非常感谢您的帮助!
找到了解决方案。问题是sed部分:
import os
import subprocess
task = subprocess.Popen("avconv -i video.mp4 2>&1 | grep Duration | cut -d ' ' -f 4 | sed -e 's/.\{4\}$//'", shell=True, stdout=subprocess.PIPE)
time = task.communicate()[0]
print time
因为它总是相同的部分,所以它只够削减最后4个字符。
谢谢,我也在上面的帖子中改变了它,但它仍然给我一个神秘的外观输出... – Johannes
如果视频不存在,它应该给出一个错误输出,但相反,输出... – Johannes
'communic'将返回2元素元组,在索引0是stdout上,在1:stderror上,所以任何错误都将在'task.communicate()[1]'上。 – GwynBleidD