Проблемы командной строки Python/FFMPEG [закрыто]

У меня проблема с запуском команды FFMPEG из сценария Python. Когда я запускаю следующую команду из терминала, я могу передавать потоковое видео и звук с подключенной веб-камеры (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 Cannot find a proper format for codec_id 0, pix_fmt -1", но не смог найти ничего подходящего.

3
задан 5 October 2011 в 05:27

2 ответа

Эта проблема была решена в переполнении стека .

Чтобы подвести итог ответа, это была проблема с кодом Аскера, он отображал вывод на экране в то же время, когда он пытался записать его, и это вызвало конфликт.

0
ответ дан 5 October 2011 в 05:27

Вместо того, чтобы разбивать «командную» строку, вы можете вызвать модуль подпроцесса с параметром shell=True:

subprocess.Popen(command, shell=True)

Однако мы не можем проверить здесь, разрешает ли ваш кодек выпуск.

0
ответ дан 5 October 2011 в 05:27

Другие вопросы по тегам:

Похожие вопросы: