Linux----FFmpeg直播推流


FFmpeg直播推流

1、本地視頻ffmpeg推流rtmp(nginx+rtmp)

1、在Linux Centos7上安裝docker(安裝過程可以參考CentOS Docker 安裝:https://www.runoob.com/docker/centos-docker-install.html)

輸入:docker -v   

顯示如下:

[root@localhost ~]# docker -v
Docker version 19.03.8, build afacb8b
[root@localhost ~]#

2、安裝nginx-rtmp,是ffmpeg要推流的流服務器

docker pull alfg/nginx-rtmp

3、運行rtmp實時流服務器容器

[root@localhost ~]# docker run -it -p 1935:1935 -p 8080:8080 --rm alfg/nginx-rtmp
--rm  表示停止之后就刪除該容器,如果要長久使用,則可以使用如下:
[root@localhost ~]# docker run -itd -p 1935:1935 -p 8080:8080 alfg/nginx-rtmp
  • -i: 交互式操作
  • -t: 終端
  • -d: 后台運行
  • alfg/nginx-rtmp: alfg/nginx-rtmp 鏡像

 

出現上述界面,表示ffmepg實時流服務器alfg/nginx-rtmp已經搭建好了,下面使用ffmpeg推送本地文件1.mp4到實時流服務器alfg/nginx-rtmp

在ffmpeg.exe所在的文件夾種輸入cmd,回車,

 

 之后輸入

ffmpeg -threads 2 -re -fflags +genpts -i ./1.mp4 -c:v copy -c:a aac -strict -2 -f flv rtmp://192.168.1.191:1935/hls/hello1

再次在ffmpeg.exe所在的文件夾種輸入cmd,回車,輸入ffplay拉流

ffplay -fflags nobuffer  rtmp://192.168.1.191:1935/hls/hello1  # rtmp播放,也可以配置h5ss 播放

顯示界面如下:

 

 使用vlc拉流,打開網絡串流,輸入:

rtmp://192.168.1.191:1935/hls/hello1

 

 

 

 

2、在線實時ffmpeg推流rtmp(nginx+rtmp)

ffmpeg攝像頭實時推送,在ffmpeg.exe所在的文件夾種輸入cmd,回車,輸入如下,驚醒實時推流

ffmpeg -rtbufsize 5M -f dshow  -i video="USB Camera" -s 640x360 -vcodec libx264 -tune zerolatency -preset ultrafast -b:v 1000k  -g 5 -ab 128k -f flv rtmp://192.168.1.191:1935/hls/hello1

使用ffplay以及vlc拉流

再次在ffmpeg.exe所在的文件夾種輸入cmd,回車,輸入ffplay拉流

ffplay -fflags nobuffer  rtmp://192.168.1.191:1935/hls/hello1  # rtmp播放,也可以配置h5ss 播放

 

使用vlc拉流,打開網絡串流,輸入:

rtmp://192.168.1.191:1935/hls/hello1

顯示如下:

 

注意:

如果出現“write /proc/self/attr/keycreate: permission denied”  則表示文件沒有寫入權限,被拒絕訪問了這是selinux是linux為了系統安全性做的控制,會控制用戶可以訪問、讀取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件沒有權限,就是被selinux控制了。selinux有三種模式:enforcing 強制 permissive 寬容的 diabled 禁止的,權限限制從高到低。

解決方法:

在Linux CentOS7中將/etc/selinux下的config文件中的SELINUX屬性改為disabled
步驟:

vi /etc/selinux/config

可以看到里面的屬性為:enforcing強制性的,按i進入編輯模式,將SELINUX屬性改為disabled,按Esc,再按:wq保存退出,重啟liunx系統即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM