环境:wsl Ubuntu docker_desktop
docker_desktop中已有srs ffmpeg的镜像和容器。配置和试错经历见文章
进入ffmpeg容器之后进行ffmpeg推流。推流命令如下:
ffmpeg -stream_loop 1 -re -i /usr/Downloads/firework.mp4 -c copy -f flv rtmp://host.docker.internal/live/livestream
得到如下截图
一段时间之后出现下图
这是什么意思呢?问了一下文心一言,它说
总而言之就是这个被转码和推流的视频出了问题,或者编码设置有问题
先不管这个问题
接下来,我希望在网页上看到推流的视频,但是该在那个页面上看呢?这个问题困扰了我很久,直到问了gpt才打出结论:执行了推流之后,在浏览器输入http://localhost:8080来查看推流状态。然后就能看到下图
点击SRS播放器,再点击右边的play
然后调出Ubuntu,进行推流
ffmpeg -stream_loop -1 -re -i /usr/Downloads/firework.mp4 -c copy -f flv rtmp:/<主机ip>:1935/live/livestream
然后就可以看到播放中的视频啦!
再次说明一下,解决的方法之一是把-stream-loop后面的参数改成-1。这表示循环推流,表现在视频播放中就是,在你在命令行中输入“Q”或者按“ctrl+C”停止推流之后,视频播放器将所有被推上来的视频播放结束之前,不会停止播放,而播放时间完全会大于被推流视频的原有时间。
下图时正在推流的截图。
最后,特别感谢好运小熊,它在我旁边呆的这几个小时,我就解决了卡壳三天的问题!多谢了,熊哥!!!