【问题标题】:Pipe ffmpeg to oggenc(2) with .NET使用 .NET 将 ffmpeg 管道传输到 oggenc(2)
【发布时间】:2010-03-19 08:22:32
【问题描述】:

我正在尝试以 -q 6/192k 对 ogg 文件进行编码。 ffmpeg 似乎没有在听我的命令

ffmpeg -i blah -acodec vorbis -ab 192k -y out.ogg

所以我想使用recommended ogg encoder。它说输入必须是 wav 或类似的。我想将 wav 从 ffmpeg 传输到 ogg。但是,我不仅不确定 oggenc2 是否会接受来自标准输入的输入,而且我不知道如何使用 Process 类将一个进程通过管道传输到 .net 内部的另一个进程。

【问题讨论】:

    标签: .net ffmpeg stdout stdin pipe


    【解决方案1】:

    首先,AFAIK

    Oggenc2

    命令行编码器 - 允许直接 '.flac'、'.ape'、'.wv' 的输入, '.pac'、'.ofr' 和 '.shn' 文件 - ICL7.1编译

    假设你不需要

    将一个进程通过管道传输到内部的另一个进程 .net 使用 Process 类

    因为有一种更简单的方法可以做到这一点。尝试以下构造:

    ffmpeg -i audio.mp3 -f flac - | oggenc2.exe - -o audio.ogg
    

    此命令将输入​​的mp3 文件(我在我的PC 上没有找到其他音频文件)转换为flac 并将其发送到stdout,然后使用管道发送到oggenc2stdin (|)。

    您唯一需要做的就是编写一个 .NET 包装器来运行 ffmpeg

    【讨论】:

    • 我在 system.diagnostics 中使用 Process。为什么我需要一个包装器?我会写另一个关于管道的问题,我想我会使用上面的命令。我很快就会回来(在回答那个问题后)接受我认为这会奏效!
    • 在“包装器”下,我的意思是 System.Diagnostics.Process 类:)
    猜你喜欢
    • 1970-01-01
    • 2019-05-17
    • 2016-03-14
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 2011-08-15
    • 2019-10-01
    • 2016-02-13
    相关资源
    最近更新 更多