使用樹莓派進行24小時視訊直播

bboysoul發表於2018-09-12

概述

其實做這個就是為了可以24小時去推街舞視訊,如果喜歡大家可以關注下我的直播間

https://live.bilibili.com/2773758

https://www.panda.tv/984523

為什麼使用樹莓派做這個事情呢,因為省電,不需要24小時開電腦,大部分網上24小時直播視訊的都是使用電腦去做的

準備視訊

這個就不說了,我是從youtube上下載的,所以使用youtube-dl就可以了

安裝ffmpeg和解碼器

首先安裝x264解碼器
下載原始碼
sudo git clone git://git.videolan.org/x264
編譯配置
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
編譯
make
安裝
make install
安裝ffmpeg
下載原始碼
git clone git://source.ffmpeg.org/ffmpeg.git
編譯配置
./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
編譯
建議新建一個screen會話編譯
make
安裝
make install

準備一些指令碼

首先我們要知道的是網上下載下來的視訊視訊名字肯定是沒有規則可言的,所以我們要把視訊的名字重新命名一下變成1.mp4,2.mp4這樣子,所以要有一個重新命名視訊檔案的指令碼,比如下面

#!/bin/bash
#用法:在終端使用"./renames.sh"執行
echo "===本指令碼實現批量重新命名某種型別檔案為相同字首+數字的檔案===";
echo "!警告:一定要確保輸入的字首加上數字後,不和原先已有的檔名重複,否則檔案會因為替換而丟失";
echo --------------------------------------------------------------------
echo "?---輸入批量檔案所在目錄(如:/home/andy/圖片)(當前目錄輸入 .即可)---";   
read  directory;
cd  "$directory";
echo "?---輸入要重新命名檔案型別和字首(如:png  img_  (區分大小寫))[以空格分割]---";
read ext  begin;
echo ">>>開始批量重新命名  $directory 下的 $ext 檔案>>>>>>>>>>>>>>";
let  i=0;
             for it in   *.$ext; do
                   mv "$it"   "$begin$i.$ext";
                   let i=i+1; 
             done
echo "===完成$i個檔案批量重新命名,檔案列表如下:";
ls  *.$ext
echo -----------------------------------------------------------------------

之後要有一個可以24小時執行著的播放指令碼,比如下面

rtmp="推流地址/推流碼"
while true
do
    for i in $(seq 0 188)
    do
    ffmpeg -re -i $i.mp4 -vcodec copy -acodec copy -f flv $rtmp
    done
done

上面使用一個巢狀迴圈來做視訊的直播推流

之後你要做的就是開啟一個screen會話然後把指令碼掛著執行就可以了

歡迎關注Bboysoul的部落格www.bboysoul.com
Have Fun


相關文章