How to stream with ffmpeg via http protocol

拟墨画扇 提交于 2019-12-04 11:18:45

问题


I'm currently doing a stream that is supposed to display correctly within Flowplayer. First I send it to another PC via RTP. Here, I also checked with VLC that the codec etc. arrive correctly, which they do.

Now I want to expose this stream to Flowplayer as a file, so it can be displayed, via something I used in VLC: http://localhost:8080/test.mp4 for example.

The full line I got is: ffmpeg -i input -f mp4 http://localhost:8080/test.mp4

However, no matter how I try to do this, I only get an input/output error. Is this only possible with something like ffserver or another?

What I think is this doesn't work because ffmpeg can't act as a server; on VLC it works since it can. (Though VLC ruins the codecs I set and it can't be read afterwards for some reason)

A (sort of) workaround I can use is saving the RTP stream to a file, and then letting flowplayer load it. This, however, only works once the file is not accessed anymore; I get a codec error otherwise.


回答1:


you need this command line

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

make sure that your feed name ends with ".ffm" and if it's not the case, then add "-f ffm" before your feed URL, to manually specify the output format (because ffmpeg won't be able to figure it out automatically any more), like this "-f ffm http://localhost:8090/blah.bleh".



来源:https://stackoverflow.com/questions/24017930/how-to-stream-with-ffmpeg-via-http-protocol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!