告诉 ffserver 使用哪个轨道

告诉 ffserver 使用哪个轨道

我想通过 ffserver 流式传输视频。我的视频采用 mkv 和 avi 等容器格式,有时具有多个音频/视频轨道。我如何告诉 ffserver 使用哪个轨道?似乎总是拿第​​一个。

答案1

如果你看这一页他们展示了使用 ffmpeg 进行切片然后将其转发到 ffserver 的技术:

$ ffmpeg \
    -f v4l2 -s 320x240 -r 25 -i /dev/video0 \
    -f alsa -ac 1 -i hw:0 \
    http://localhost:8090/feed1.ffm

上面的命令执行以下操作:

  • 第一部分-f v4l2 -s 320x240 -r 25 -i /dev/video0代表网络摄像头视频的第一个输入ffmpeg并捕获我们的网络摄像头视频。有关更多信息,您可以阅读有关如何捕获网络摄像头输入的更多信息。
  • 第二部分-f alsa -ac 1 -i hw:0代表第二个输入ffmpeg并捕获我们的音频,具体取决于我们的系统音频配置。有关更多信息,您可以阅读有关使用 FFmpeg 和 ALSA 捕获音频的更多信息。
  • 最后但并非最不重要的部分http://localhost:8090/feed1.ffm表示提要 URL,它告诉 ffmpeg 连接到 ffserver 并向其发送音频 + 视频流以进行广播。在此示例中,我们使用的主机名localhost意味着所有内容都在我们的计算机上运行,​​但如果您需要为实时在线 ffserver 提供数据,则需要将其更改localhost为 ffserver 计算机的真实主机名或 IP 地址。还要确保您的 feed 名称以.ffmand 结尾,如果不是这种情况,请-f ffm在 feed URL 之前添加,以手动指定输出格式(因为ffmpeg将无法再自动确定),如下所示-f ffm http://localhost:8090/blah.bleh

一旦输入上面的命令,您应该会看到 ffmpeg 显示一些有关输入流的统计信息并计算输出帧,这是一个很好的迹象,表明一切正常(到目前为止)。

相关内容