Как использовать ffmpeg с Python, передавая файловые объекты (вместо местоположений файлам на диске)

Я пытаюсь использовать ffmpeg с модулем подпроцесса Python для преобразования некоторых аудиофайлов. Я беру аудиофайлы из URL-адреса и хотел бы просто передать объекты файлов Python в ffmpeg вместо того, чтобы сначала сохранять их на диск. Также было бы очень хорошо, если бы я мог просто вернуть файловый поток вместо того, чтобы ffmpeg сохранял вывод в файл.

Для справки, вот чем я сейчас занимаюсь:

tmp = "/dev/shm"
audio_wav_file = requests.get(audio_url)
##              ##                         ##
## This is what I don't want to have to do ##
wavfile = open(tmp+filename, 'wrb')   
wavfile.write(audio_wav_file.content)
wavfile.close()
##              ##                         ##
conversion = subprocess.Popen('ffmpeg -i "'+tmp+filename+'" -y "'+tmp+filename_noext+'.flac" 2>&1', shell = True, stdout = subprocess.PIPE).stdout.read()

Кто-нибудь знает, как это сделать?

Спасибо!

7
задан Lyle Pratt 1 May 2012 в 16:08
поделиться