37,719
社区成员
发帖
与我相关
我的任务
分享
import subprocess
import time
#p = subprocess.call('ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 /tmp/output.mp4', stdin = subprocess.PIPE)
p = subprocess.Popen('/usr/bin/ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 /tmp/output.avi'.split(), stdin = subprocess.PIPE)
time.sleep(30)
p.communicate("q\n")
但是, 上面的代码不论是ctrl-c杀掉还是等p.communicate()退出, 生成的文件都可以用mplayer播放. 不知道media player会怎样.ffprobe output.avi
media player报的什么错误? 编码不支持?
python中运行和cmd中运行的唯一区别在于命令中的几个汉字, 1. 试试python中命令字符串前加u, u"ffmpeg..." 2. 试试把-audio选项去掉.
这个问题太奇怪了, 找到原因后, 请一定分享一下.
另:
ffmpeg有python binding: pip install av
http://mikeboers.github.io/PyAV/#