gpt4 book ai didi

http - 如何通过http协议(protocol)使用ffmpeg进行流式传输

转载 作者:可可西里 更新时间:2023-11-01 15:12:33 27 4
gpt4 key购买 nike

我目前正在做一个应该在 Flowplayer 中正确显示的流。首先,我通过 RTP 将其发送到另一台 PC。在这里,我还使用 VLC 检查了编解码器等是否正确到达,他们确实做到了。

现在我想将这个流作为一个文件公开给 Flowplayer,这样它就可以通过我在 VLC 中使用的东西显示:http://localhost:8080/test.mp4例如。

我得到的完整行是:ffmpeg -i input -f mp4 http://localhost:8080/test.mp4

但是,无论我如何尝试执行此操作,我只会收到输入/输出错误。这只有在 ffserver 或其他东西上才有可能吗?

我认为这是行不通的,因为 ffmpeg 不能充当服务器;在 VLC 上它可以工作。 (虽然 VLC 破坏了我设置的编解码器并且之后由于某种原因无法读取它)

我可以使用的(某种)解决方法是将 RTP 流保存到文件中,然后让 flowplayer 加载它。但是,这仅在不再访问该文件时才有效;否则我会收到编解码器错误。

最佳答案

要让 FFmpeg 充当 HTTP 服务器,您需要传递 -listen 1 选项。此外,-f mp4 将生成不适合流式传输的非碎片化 MP4。你可以用 -movflags frag_keyframe+empty_moov 得到一个碎片化的 MP4。一个完整的工作命令行是:

ffmpeg -i input -listen 1 -f mp4 -movflags frag_keyframe+empty_moov http://localhost:8080

您可能会发现其他有用的选项是 -re 将流速度限制为输入帧速率,-stream_loop -1 循环输入,以及 - c 复制以避免重新编码。

关于http - 如何通过http协议(protocol)使用ffmpeg进行流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com