【问题标题】:converting Rtsp stream to .wav and parallel y to bytes while stream is running在流运行时将 Rtsp 流转换为 .wav 并将 y 并行转换为字节
【发布时间】:2016-05-23 13:42:45
【问题描述】:

在此先感谢,我正在使用 ffmpeg 将 rtsp 直播流转换为 .wav 文件。它的转换效果很好,但我想在将 rtsp 转换为 .wav 文件时并行地将 .wav 文件转换为字节流

【问题讨论】:

    标签: c# ffmpeg


    【解决方案1】:

    1) 将 ffmpeg 作为 Proceas 启动,并可选择在参数中解码为标准输出(通常是参数末尾的“-”)

    2) 根据正在写入的输出格式从该进程读取标准输出。

    这会将输出保存在内存中,并允许您在将其提供给 stdout 后立即使用它。

    有关如何从 ffmpeg 获取原始音频的示例命令,请参阅此问题。

    Can ffmpeg convert audio to raw PCM? If so, how?

    你不能指望玩家在没有 wav 标头的情况下理解数据结构,因为原始 pcm 流中没有定义样本大小和速率。

    最后,我认为您会发现最好输出 wav 格式并读取包含播放器播放音频所需的所有内容的 wav 格式。

    您希望他们提供 wav 音频而不是 pcm,这将很容易在 naudio 以及许多其他播放器中工作。

    【讨论】:

    • 抱歉回复晚了,谢谢回复。我是ffmpeg的新手,有没有办法直接将流转换为字节格式。如果是请发送将流转换为的格式字节[] 数组
    • 您可以读取 StandardOuput 的 BaseStream 以获取原始字节。原始字节将采用传递给 ffmpeg 进程的参数指定的格式。
    • 谢谢你,是的,通过使用 StandardOuput 的 BaseStream,我们可以获得原始字节。但是当我们使用 NAudio 播放原始字节时,我们没有得到正确的音频,我们只得到噪音。有吗以任何方式获得正确的音频作为输出
    • 如果没有您使用的命令示例,很难说。写入标准输出的数据格式由传递给 ffmpeg 的参数定义。您可以指定您想要的任何格式,但您必须智能地读取输出,如果您指定原始 pcm,那么您应该能够计算每个样本中有多少字节并读取那么多字节,看来您的读数与你提到的噪音问题。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 2014-04-26
    • 1970-01-01
    • 2019-10-09
    • 2017-06-09
    • 2017-08-23
    • 2019-08-12
    • 2018-06-25
    相关资源
    最近更新 更多