win10+ffmpeg+nginx点播直播推流拉流

2020-08-14  本文已影响0人  一只爱吃鲸鱼的三瓜

环境

  1. 系统:win10
  2. 播放器:potplayer
  3. 服务器:nginx

nginx服务

  1. 开启nginx服务 nginx.exe -c conf\nginx-win-rtmp.conf
  2. 停止nginx服务nginx -s stop 记得停止服务 如果不停止就又运行开启命令,会报错

点播

  1. 需要修改conf\nginx-win-rtmp.conf文件,修改的部分如图 路径用的是相对路径,直接在nginx.exe的同级目录下添加了一个video目录,并把点播文件放到这里


    image.png

    重新开启nginx服务,在 ip地址/stat 界面可以看到变化

  2. 在点播目录下放置一个mp4文件,直接使用potplayer拉流
    rtmp://ip地址:1935/vod/orange.mp4
    成功,并且可以拖动滑动条,使用ffplay拉流同样成功

ffmpeg mp4文件模拟直播推流

mp4 1280x720 24fps
ffmpeg -re -i orange.mp4 -vcodec libx264 -acodec aac -f flv rtmp://ip地址:1935/live/home

播放器拉流

  1. 打开potplayer
  2. 右键->打开->打开链接
  3. 地址输入rtmp://ip地址:1935/live/home

使用ffplay 拉流

ffplay -i rtmp://ip地址:1935/live/home1
感觉ffplay比potplayer加载的快 成功率也更高

ffmpeg yuv文件推流

yuv文件信息:50fps 4k 8bit

  1. 推流命令:ffmpeg -re -s 3840x2160 -pix_fmt yuv420p -i y.yuv -vcodec libx264 -acodec aac -f flv rtmp://192.168.10.101:1935/live/home推流过程中报错
  2. 把-f rawvideo 换成-pix_fmt yuv420p 该命令ffmpeg -re -pix_fmt yuv420p -s 1920x1080 -r 120 -i Beauty_1920x1080_120fps_420_8bit_YUV.yuv -vcodec h264 -acodec aac -f flv rtmp://ip地址:1935/liveApp/home 可以成功! 拉流大概需要28s的时间
  3. 去除-f 和-vcodec重新尝试将yuv文件转化为mp4/flv然后再推流
    ffmpeg -pix_fmt yuv420p -s 1920x1080 -r 120 -i Beauty_1920x1080_120fps_420_8bit_YUV.yuv -c:v libx264 Beauty_1920x1080_120fps_420_8bit_YUV_noqp.flv
    推流成功 ,并且<=1s的时间拉流如果加上-qp 0 参数,点播就不会成功

测试4k视频

视频信息:4k 8bit 120fps
文件太大,拉流失败

其他

ffplay播放yuv文件命令

ffplay -f rawvideo -video_size 1920x1080 a.yuv

从服务器下载yuv文件命令

scp lss@服务器ip地址:/storage/wpt2/4Kvideo/HDvideo/Beauty_1920x1080_120fps_420_8bit_YUV.yuv D:\\Work\\rtmp\\video

遗留问题

ffmpeg几个参数的作用,有的参数似乎会冲突

参考文章

  1. win10推流+rtmp:https://blog.csdn.net/qq_32381727/article/details/81078213?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
  2. nginx命令:https://www.cnblogs.com/net666/p/10195447.html
上一篇 下一篇

猜你喜欢

热点阅读