# 用樹梅派做bilibili的直播點歌電台 ## 前情提要之先建立bilibili 24小時直播音樂 1. 安裝ffmpeg與解碼器 ```bash= git clone https://code.videolan.org/videolan/x264.git # 原文是git clone videolan.org/x264 但404 no found cd x264 ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl --disable-asm # 會跳出make make sudo make install cd .. rm -rf x264 ``` ![](https://i.imgur.com/nfCzBeL.png) 2. 安裝ffmpeg ```bash= git clone git://source.ffmpeg.org/ffmpeg.git cd ffmpeg sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree make sudo make install cd .. rm -rf ffmpeg ``` 3. 準備要不停循環的影片 我們這邊是拿了youtube裡的音樂歌單來嘗試 ![](https://i.imgur.com/nNDOUm9.png) 轉成mp4下載 ![](https://i.imgur.com/DPulwev.png) 將檔案移至pi資料夾裡並且把名字改成了1.mp4 ![](https://i.imgur.com/l1LffRb.png) 4. 進行推流 先嘗試只播一次是否成功 ```bash= ffmpeg -re -i 1.mp4 -vcodec copy -acodec aac -b:a 192k -f flv http://live.bilibili.com/25172672 ``` 由於bilibili是中國的影音網站,在2019年後不給海外人士直播所以產生了這些數據,意思是連接失敗 ![](https://i.imgur.com/zPeWH96.png) 原因: ![](https://i.imgur.com/56tj6MW.png) 於是我們打算轉戰到youtube試試看,單次的部分 ```bash= ffmpeg -re -i 1.mp4 -vcodec copy -acodec aac -b:a 192k -f flv rtmp://a.rtmp.youtube.com/live2/串流金鑰 ``` 金鑰 ![](https://i.imgur.com/7FdLgtI.png) ![](https://i.imgur.com/vDXsCm3.png) 進行24/7直播 ```bash= sudo nano live.sh # 裡面內容 #!/bin/bash while true do ffmpeg -re -i 1.mp4 -vcodec copy -acodec aac -b:a 192k -f flv rtmp://a.rtmp.youtube.com/live2/串流金鑰 done ``` 4. 安裝screen然後就可以24/7直播了 ```bash= sudo apt-get install screen screen nohup sh live.sh & ``` ## 點歌電台 1. 安裝python需要的東西 ```bash= sudo pip install eyed3 sudo pip install pathlib ``` 2. 安裝nginx&php環境 ```bash= sudo apt-get install nginx # 啟動 nginx sudo /etc/init.d/nginx start # 修改文件 sudo nano /etc/nginx/sites-available/default ``` 裡面寫入 ![](https://i.imgur.com/dxi6HJd.png) 以及 在index那行再多加index.php ![](https://i.imgur.com/tl6os4p.png) 還有location php那裏寫入 ![](https://i.imgur.com/5HYQ3Ob.png) 安裝php與他的套件 ```bash= # sudo apt-get install php5-fpm php5-sqlite # php5-fpm php5-sqlite不存在 所以改安裝php-fpm php-sqlite sudo apt-get install php-fpm php-sqlite3 # 重啟nginx sudo /etc/init.d/nginx reload # 如果failed 則 (資料:https://stackoverflow.com/questions/51525710/nginx-failed-to-start-a-high-performance-web-server-and-a-reverse-proxy-server # sudo lsof -i:80 # sudo fuser -k 80/tcp # sudo rm /etc/nginx/sites-enabled/default # sudo service nginx restart # 保險起見...裝他... sudo apt-get install php-mysql php-curl php-gd php-intl php-pear php-imagick php-imap php-memcache php-ps php-pspell ph-recode php5-snmp php-tidy php-xmlrpc ``` 下載ngrok 進行內網穿透 ```bash= sudo wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip # 解壓 sudo unzip ngrok-stable-linux-arm.zip ``` 去官網取得指令 ![](https://i.imgur.com/tZxP4gv.png) ```bash= ./ngrok authtoken <你的token> ./ngrok tcp 22 # 進入畫面 ``` 取Forwarding的網址 ![](https://i.imgur.com/qXlpFTg.png) <可能扯遠了> https://learningsky.io/access-raspberry-pi-from-outside-network/ 建立www並且給予權限 ```bash= cd /usr/share/nginx mkdir www sudo nano /usr/share/nginx/www/songlist.txt #https://gist.github.com/chenxuuu/5e616f84ea2858ba5c941a2149479f20 # 這是他給的code 從網易雲api那裏抓歌下載的樣子 sudo chmod -R 777 /usr/share/nginx/www ``` (to be continued...做不到網頁點歌那個步驟) 前情提要的24小時音樂直播成品: https://youtu.be/56fAyxFj6vg 網址: 歌單網址: https://www.youtube.com/watch?v=M0iNKv5IjhY&ab_channel=RelaxingRadio Referece: bilibili 24hr 直播電台 https://www.chenxublog.com/2017/06/02/raspi-live-24h-bilibili.html bilibili 直播點歌電台 https://www.chenxublog.com/2017/11/23/24h-raspberry-live-on-bilibili-reload.html https://shumeipai.nxez.com/2017/06/11/use-raspberry-pi-to-build-bilibili-vod.html