python - 您可以在不保存到文件的情况下将视频转换为 python 中的音频文件吗?

标签 python ffmpeg

对于 python web 项目,我通过 flask 接口(interface)接收视频文件。
现在要进行分析,我需要从中提取音频文件。

问题是我无法先将视频保存到文件,这似乎消除了使用 ffmpeg,因为它需要指向文件位置的链接。

是否有任何 python 解决方案允许我仅使用对象传递和返回音频/视频文件?

先感谢您

最佳答案

没有人回答,所以我会尽力帮助你,但我没有成功。

这肯定是因为我没有编译自己的 ffmpeg,所以没有预期的编解码器.. 但无论如何,我认为以下内容会有所帮助。

这是一个简单的 Flask 服务器,它期望使用文件进行 POST 查询并将其传递给 ffmpeg(使用 ffmpy )而不保存它。

import os
import subprocess

from ffmpy import FFmpeg

from flask import Flask, request, redirect, url_for

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)

        stream_file = request.files['file']

        ff = FFmpeg(
            inputs={'pipe:0': 'ARGUMENTS'},
            outputs={'pipe:1': 'ARGUMENTS'}
        )
        stdout, stderr = ff.run(input_data=stream_file.read(), stdout=subprocess.PIPE)

    return '''
    <!doctype html>
    <title>Upload new File</title>
    <h1>Upload new File</h1>
    <form method=post enctype=multipart/form-data>
      <p><input type=file name=file>
         <input type=submit value=Upload>
    </form>
    '''

app.run()

显然你必须更新 ARGUMENTS通过预期的 ffmpeg 参数。

一些文档:https://ffmpeg.org/ffmpeg-protocols.html#pipe , http://ffmpy.readthedocs.io/en/latest/examples.html#using-pipe-protocol

关于python - 您可以在不保存到文件的情况下将视频转换为 python 中的音频文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957134/

相关文章:

python - 分配给 list.extend 到 python 2.7 中的变量

Python——生成器在迭代器之间散布值——我这样做正确吗?

使用 ffmpeg 进行 Android 视频编辑

java - 解码 RIMM 流文件格式

python - 相当于python的-R选项影响ints的hash

python - 使用 GLSL 的 OpenGL 阴影贴图

android - 在 Xamarin Android 中使用 FFmpeg 输出文件

ubuntu - 在 FFmpeg 上合并不等长的音频和视频

python - Pandas 根据条件替换数据框值

node.js - 创建动态音频广播流(node、ffmpeg、..?)