gpt4 book ai didi

Python/FFMPEG 命令行问题

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:17 29 4
gpt4 key购买 nike

我在从 Python 脚本中运行 FFMPEG 命令时遇到问题。当我从终端运行以下命令时,我可以从我连接的网络摄像头 (Logitech C310) 流式传输视频和音频并输出到文件“out.avi”而不会出现任何错误。

ffmpeg -f alsa -i default -itsoffset 00:00:00 -f video4linux2 -s 1280x720 -r 25 -i /dev/video0 out.avi

当我在下面的 Python 脚本中运行相同的命令时,

def call_command(command):
subprocess.Popen(command.split(' '))

call_command("ffmpeg -f alsa -i default -itsoffset 00:00:00 -f video4linux2 -s 1280x720 -r 25 -i /dev/video0 out.avi")

它给我错误:

Input #0, alsa, from 'default':
Duration: N/A, start: 1317762562.695397, bitrate: N/A
Stream #0.0: Audio: pcm_s16le, 44100 Hz, 1 channels, s16, 705 kb/s
[video4linux2 @ 0x165eb10]Cannot find a proper format for codec_id 0, pix_fmt -1.
/dev/video0: Input/output error

谁能阐明这里可能发生的事情?我试过使用 os.system() 和 subprocess.call() ,它给了我同样的错误。我不确定从哪里开始可能会出什么问题。我尝试搜索“video4linux2 无法找到 codec_id 0 的正确格式,pix_fmt -1”错误,但找不到任何一致的内容。

我还尝试将“ffmpeg -f...”命令放入 shell 脚本“test.sh”中,并赋予它可执行权限。然后我打开终端,运行“./test.sh”,它工作了。当我尝试从我的 Python 脚本中调用命令“./test.sh”时,我仍然像以前一样遇到原始错误。这是我用 test.sh 脚本尝试的 Python 命令:

subprocess.call(["./test.sh"])

最佳答案

我已经解决了这个问题。在我的 Python 脚本中,我使用 OpenCV 来显示这些帧并使用 ffmpeg 记录它们。尝试运行 ffmpeg 命令并使用 OpenCV 在屏幕上显示它们时发生冲突。

更具体地说,在创建 OpenCV CreateCameraCapture 对象时:

from opencv.cv import *  
from opencv.highgui import *

capture = cvCreateCameraCapture(0) #conflict with ffmpeg/v4l2 occurs here

注释掉那行代码解决了我的问题。 Python 和执行命令没有任何问题。

关于Python/FFMPEG 命令行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656308/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com