想问问我这个 ffmpeg 方法该怎么办

274 天前
 Canglin

是这样的,我想在 ffmpeg 输出的时候直接覆盖掉 output_file,在 ffmpeg.output 中也使用了 overwrite 参数但是运行的时候依旧要我手工在 ps 里面输入'y'才能继续执行,想问问各位大哥这个该怎么解决? 使用的包是 ffmpeg-python 内容如下:

def ffmpeg_process(video_path, audio_path):

    video_stream = ffmpeg.input(video_path)
    audio_stream = ffmpeg.input(audio_path)
    output_path = os.path.join(
        OUTPUT_PATH,
        VIDEO_MAP['GROUP_TITLE'],
    )
    output_path = os.path.join(output_path, VIDEO_MAP['OUTPUT_FILE'])

    output_stream = ffmpeg.output(
        video_stream,
        audio_stream,
        output_path,
        vcodec='copy',
    )

    def count_none(Map):
        Nones = sum(values is None for values in Map.values())
        if Nones > 0:
            return False
        else:
            return True

    if count_none(VIDEO_MAP):
        Build.makedir(output_path)
        ffmpeg.run(output_stream)
2295 次点击
所在节点    Python
8 条回复
wuruorocks
274 天前
ffmpeg 命令行有-y 参数,不知这个 python 包有没有对应的;实在不行就输出到临时文件,然后再 move
formant
274 天前
vcodec='copy',
'-y' # 添加这个参数试试?
liyouran
274 天前
官方文档 https://ffmpeg.org/ffmpeg.html#Main-options 里有个-y 参数能直接覆盖,我直接用 subprocess 模块运行 ffmpeg
Canglin
274 天前
@formant #2 不行,直接报错了
Canglin
274 天前
@wuruorocks #1 是个简单粗暴的好办法
chanssl
274 天前
文檔: https://kkroening.github.io/ffmpeg-python/# ,有個 overwrite_output 的參數。
試試 ffmpeg.run(output_stream,overwrite_output=True)
abccccabc
274 天前
@liyouran 这个-y 参数不好用,在我 php 这里会报错。
Canglin
274 天前
@chanssl #6 这个方法我刚试了一下,Error opening output files: Permission denied 提示这个错误

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1026444

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX