Boe*_*hmi 8 ffmpeg http flowplayer
我正在做一个应该在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。您可以使用 获得碎片 MP4 -movflags frag_keyframe+empty_moov
。完整的工作命令行是:
ffmpeg -i input -listen 1 -f mp4 -movflags frag_keyframe+empty_moov http://localhost:8080
Run Code Online (Sandbox Code Playgroud)
您可能会发现有用的其他选项包括-re
将流速度限制为输入帧速率、-stream_loop -1
循环输入以及-c copy
避免重新编码。
小智 -3
你需要这个命令行
ffmpeg -f v4l2 -s 320x240 -r 25 -i /dev/video0 -f alsa -ac 1 -i hw:0 http://localhost:8090/feed1.ffm
Run Code Online (Sandbox Code Playgroud)
确保您的 feed 名称以“.ffm”结尾,如果不是这种情况,请在 feed URL 之前添加“-f ffm”,以手动指定输出格式(因为 ffmpeg 无法自动识别)不再),就像这样“-f ffm http://localhost:8090/blah.bleh ”。