店鋪推廣方法網(wǎng)站優(yōu)化排名軟件網(wǎng)站
最近在折騰無(wú)人直播。覺(jué)得還挺有意思,接下來(lái)就分享一下如何實(shí)現(xiàn)。實(shí)現(xiàn)后就可以給一些主流的平臺(tái)直播間不間斷推流,達(dá)到無(wú)人直播的效果。
前提:擁有一臺(tái)服務(wù)器。最好流量是1T或者以上。直播對(duì)流量要求比較高,視頻碼率越大,越費(fèi)流量,所以最好買個(gè)國(guó)外的服務(wù)器。流量相對(duì)便宜。
接下來(lái)開始整,以centos作為演示搭建平臺(tái):
- 先vim創(chuàng)建文件,然后復(fù)制lala大佬的寫的比較傻瓜式的操作的腳本,給放到服務(wù)器上,腳本內(nèi)容如下:我這里創(chuàng)建的文件名字是test.sh。( 就是vim test.sh 。然后輸入i進(jìn)入編輯模式,然后復(fù)制粘貼以下內(nèi)容,然后:wq 保存退出即可應(yīng)該都會(huì)用vim吧,不會(huì)的可以留言~ )
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#=================================================================#
# System Required: CentOS7 X86_64 #
# Description: FFmpeg Stream Media Server #
# Author: LALA #
# Website: https://www.lala.im #
#=================================================================## 顏色選擇
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
font="\033[0m"ffmpeg_install(){
# 安裝FFMPEG
read -p "你的機(jī)器內(nèi)是否已經(jīng)安裝過(guò)FFmpeg4.x?安裝FFmpeg才能正常推流,是否現(xiàn)在安裝FFmpeg?(yes/no):" Choose
if [ $Choose = "yes" ];thenyum -y install wgetwget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xztar -xJf ffmpeg-4.0.3-64bit-static.tar.xzcd ffmpeg-4.0.3-64bit-staticmv ffmpeg /usr/bin && mv ffprobe /usr/bin && mv qt-faststart /usr/bin && mv ffmpeg-10bit /usr/bin
fi
if [ $Choose = "no" ]
thenecho -e "${yellow} 你選擇不安裝FFmpeg,請(qǐng)確定你的機(jī)器內(nèi)已經(jīng)自行安裝過(guò)FFmpeg,否則程序無(wú)法正常工作! ${font}"sleep 2
fi}stream_start(){
# 定義推流地址和推流碼
read -p "輸入你的推流地址和推流碼(rtmp協(xié)議):" rtmp# 判斷用戶輸入的地址是否合法
if [[ $rtmp =~ "rtmp://" ]];thenecho -e "${green} 推流地址輸入正確,程序?qū)⑦M(jìn)行下一步操作. ${font}"sleep 2elseecho -e "${red} 你輸入的地址不合法,請(qǐng)重新運(yùn)行程序并輸入! ${font}"exit 1
fi# 定義視頻存放目錄
read -p "輸入你的視頻存放目錄 (格式僅支持mp4,并且要絕對(duì)路徑,例如/opt/video):" folder# 判斷是否需要添加水印
read -p "是否需要為視頻添加水印?水印位置默認(rèn)在右上方,需要較好CPU支持(yes/no):" watermark
if [ $watermark = "yes" ];thenread -p "輸入你的水印圖片存放絕對(duì)路徑,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):" imageecho -e "${yellow} 添加水印完成,程序?qū)㈤_始推流. ${font}"# 循環(huán)while truedocd $folderfor video in $(ls *.mp4)doffmpeg -re -i "$video" -i "$image" -filter_complex overlay=W-w-5:5 -c:v libx264 -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}donedone
fi
if [ $watermark = "no" ]
thenecho -e "${yellow} 你選擇不添加水印,程序?qū)㈤_始推流. ${font}"# 循環(huán)while truedocd $folderfor video in $(ls *.mp4)doffmpeg -re -i "$video" -preset ultrafast -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}# ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 8500k -c:a aac -b:a 128k -strict -2 -f flv ${rtmp}donedone
fi}# 停止推流
stream_stop(){screen -S stream -X quitkillall ffmpeg}# 開始菜單設(shè)置
echo -e "${yellow} CentOS7 X86_64 FFmpeg無(wú)人值守循環(huán)推流 For LALA.IM ${font}"
echo -e "${red} 請(qǐng)確定此腳本目前是在screen窗口內(nèi)運(yùn)行的! ${font}"
echo -e "${green} 1.安裝FFmpeg (機(jī)器要安裝FFmpeg才能正常推流) ${font}"
echo -e "${green} 2.開始無(wú)人值守循環(huán)推流 ${font}"
echo -e "${green} 3.停止推流 ${font}"
start_menu(){read -p "請(qǐng)輸入數(shù)字(1-3),選擇你要進(jìn)行的操作:" numcase "$num" in1)ffmpeg_install;;2)stream_start;;3)stream_stop;;*)echo -e "${red} 請(qǐng)輸入正確的數(shù)字 (1-3) ${font}";;esac}# 運(yùn)行開始菜單
start_menu
- 第一步如果折騰好的話是這樣的
然后執(zhí)行bash test.sh。顯示這樣
-
選擇1,回車,yes,先安裝FFmpeg。
安裝完成之后,再次允許腳本。這次我們選擇2.
-
這一步我們需要準(zhǔn)備推流地址和推流碼。這里我以youtube的為例子,把推流地址和推流碼復(fù)制過(guò)來(lái)。
注意先復(fù)制1,然后復(fù)制2,這中間要有斜杠。有的直播平臺(tái)會(huì)自己帶,有的沒(méi)有。最后服務(wù)器上是這樣的。
一定要注意推流地址和推流碼之間的’/’
5. 然后回車進(jìn)入下一步。把MP4格式的視頻準(zhǔn)備好,就是把你想直播的mp4放到服務(wù)器上,不會(huì)命令行操作的可用moba這些的ssh終端操作。最好放在和這個(gè)腳本一個(gè)路徑的地方,當(dāng)然別的地方也可以,隨意~
6. 至此,我們推流腳本和要推流的視頻都已經(jīng)準(zhǔn)備好了。其實(shí)已經(jīng)開始直播了,但是我們這里要再使用一個(gè)screen工具來(lái)實(shí)現(xiàn)后臺(tái)執(zhí)行這個(gè)命令,讓我們可以在服務(wù)器上可以繼續(xù)干別的事情 yum -y install screen 。安裝即可。
7.接著我們還是在當(dāng)前路徑,即視頻和腳本所在的路徑輸入 screen。新建一個(gè)屏幕。然后執(zhí)行bash test.sh 然后 輸入2.然后輸入推流地址和推流碼。然后回車,然后輸入你視頻存放的路徑。繼續(xù)回車,選擇是否要添加水印。如果服務(wù)器cpu不錯(cuò)。,可以開啟,否則不開啟。繼續(xù)回車,就開始推流了
- 此時(shí)我們按住CTRL + A +D。即可讓程序后臺(tái)運(yùn)行。
- 若是想中斷直播,輸入,screen -ls 。
看到前面的進(jìn)程號(hào)之后,kill掉即可。 若要重新回去這個(gè)屏幕 screen -r 進(jìn)程號(hào) 即可。
14:20歡迎訪問(wèn)我的博客站,有更多開源項(xiàng)目分享:vwo50