利用树莓派实现b站24小时音乐直播

本篇文章只能实现固定歌曲的循环播放功能,如果你想要点歌功能,请查看下面这篇文章:

【重写】树莓派驱动的b站点播台


最新的文章已经把代码更新为弹幕点歌了,并且在GitHub持续更新。


本教程参考了以下文章:

ffmpeg-rtmp搞事指南

树莓派安装ffmpeg

使用FFmpeg在B站直播的姿势

第一步:安装ffmpeg

先安装解码器

git clone git://git.videolan.org/x264
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
make
sudo make install
cd ..
rm -rf x264

再安装ffmpeg

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

有两个地方需要注意:

  1. git下载慢的话可以先导入到gitosc再clone

  2. 编译ffmpeg的过程在树莓上十分漫长。。。我的花了两个半小时,所以建议使用screen扔到后台,以免断网导致需要重来

第二步:准备直播所需要的视频文件

我们需要制作一个只有背景音乐的视频,一般会做一个一图流的视频(整个视频画面就是一张图)

这里我使用了小丸工具箱(点我下载

先要合并一堆mp3文件,具体方法:

  1. 全选这些mp3文件

  2. 右击添加到压缩文件

  3. 文件类型选择zip,压缩类型选择“储存”

  4. 将压缩好的xxx.zip拓展名改为.mp3即可(是不是很神奇hhhhh)

接下来照一张图片,打开小丸工具箱,选择“常用”选项卡

把图片拖到“一图流”的“图片”框里,把整合好的音乐拖到“音频”框里,点击“压制”

这样我们就得到了我们需要的文件

第三步:进行推流

把文件传到树莓上,使用下面的命令即可推流

ffmpeg -re -i "1.mp4" -vcodec copy -acodec aac -b:a 192k -f flv "你的rtmp地址/你的直播码"

由于此命令只能运行一次,播放完就停了,所以要实现无限循环播放的话就需要编写一个sh文件,内容如下

#!/bin/bash
while true
do
ffmpeg -re -i "1.mp4" -vcodec copy -acodec aac -b:a 192k -f flv "你的rtmp地址/你的直播码"
done

保存为live.sh,使用下面的命令运行即可(如果没有screen,先使用sudo apt-get screen 安装)

screen nohup sh live.sh &

搭建好的直播间:http://live.bilibili.com/16703

不保证我以后的直播内容不变哈

39 Comments

  1. Google Chrome 60.0.3107.4 Google Chrome 60.0.3107.4 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3107.4 Safari/537.36

    现已实现点歌功能!

  2. Microsoft Edge 15.15063 Microsoft Edge 15.15063 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063

    之家更新了,这边居然没有更新。还有最新的点歌源码呐QAQ

    1. Google Chrome 60.0.3107.4 Google Chrome 60.0.3107.4 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3107.4 Safari/537.36

      懒得再搬回来了。。。
      源码改改就好了嘛。。。也没多少行

    2. Google Chrome 60.0.3107.4 Google Chrome 60.0.3107.4 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3107.4 Safari/537.36

      已更新

  3. Google Chrome 58.0.3029.110 Google Chrome 58.0.3029.110 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

    ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
    你知道这是怎么回事吗?缺少libraries吗? 怎么解决啊?

  4. Google Chrome 58.0.3029.110 Google Chrome 58.0.3029.110 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

    你好 我又照着安装了一遍 成功了 但现在想实现 视频文件顺序播放 请教怎么弄啊?

  5. Firefox 53.0 Firefox 53.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0

    ffbuild/common.mak:59: recipe for target ‘libavcodec/h264qpel.o’ failed
    make: *** [libavcodec/h264qpel.o] Error 1
    编译ffmpeg出的错了,要怎么办?

    1. Google Chrome 60.0.3112.7 Google Chrome 60.0.3112.7 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.7 Safari/537.36

      不知道,自己查资料

  6. Google Chrome 60.0.3112.78 Google Chrome 60.0.3112.78 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36

    我输入sudo apt-get screen后显示无效操作 screen

    1. Google Chrome 61.0.3159.5 Google Chrome 61.0.3159.5 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3159.5 Safari/537.36

      基础知识,请自行解决

      1. Google Chrome 60.0.3112.78 Google Chrome 60.0.3112.78 Windows 10 x64 Edition Windows 10 x64 Edition
        Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36

        dit 下载特别慢而且下载到百分之97就不动了。。。速度还显示7kb/s这个咋解决啊

  7. Google Chrome 56.0.2924.87 Google Chrome 56.0.2924.87 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

    make加上-j4可以加速,多线程编译,我这边j4只用了1h,平台B+

    1. Google Chrome 61.0.3159.5 Google Chrome 61.0.3159.5 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3159.5 Safari/537.36

      还有这种操作

      1. Google Chrome 56.0.2924.87 Google Chrome 56.0.2924.87 Windows 10 x64 Edition Windows 10 x64 Edition
        Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

        woc,你居然不知道?。。。。扎心了老铁、

        1. Google Chrome 61.0.3159.5 Google Chrome 61.0.3159.5 Windows 10 x64 Edition Windows 10 x64 Edition
          Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3159.5 Safari/537.36

          我不太会用linux。。。

    2. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
      Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

      我也只用了1h 平台B 但是没-j4

  8. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

    解析器下载域名解析暂时失败怎么办

    1. Vivaldi 1.97.1259.3 Vivaldi 1.97.1259.3 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.102 Safari/537.36 Vivaldi/1.97.1259.3

      挂梯子

      1. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
        Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

        挂梯子解决了3Q

  9. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

    请问一下树莓派可以安装小丸吗

    1. Vivaldi 1.97.1259.3 Vivaldi 1.97.1259.3 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.102 Safari/537.36 Vivaldi/1.97.1259.3

      小丸不就是ffmpeg的gui封装吗。。

      1. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
        Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

        可以教一下怎么操作吗emmmmmm

        1. Vivaldi 1.97.1259.3 Vivaldi 1.97.1259.3 Windows 10 x64 Edition Windows 10 x64 Edition
          Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.102 Safari/537.36 Vivaldi/1.97.1259.3

          我记不住,也不会用,都是网上搜的,用什么搜什么

          1. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
            Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

            好吧

  10. Internet Explorer 11.0 Internet Explorer 11.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko

    为什么点了压制后没有出现新文件但是单个音频压制就行emmmmmm

    1. Vivaldi 1.97.1259.3 Vivaldi 1.97.1259.3 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.102 Safari/537.36 Vivaldi/1.97.1259.3

      你压缩类型肯定选错了

      1. WebView 4.0 WebView 4.0 Android 5.0.2 Android 5.0.2
        Mozilla/5.0 (Linux; Android 5.0.2; MI 2 Build/LRX22G; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 Mobile Safari/537.36 mailapp/5.4.6

        zip也试了也不行

  11. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

    请问一下最后用小丸导出来的是flv格式还是mp4格式?

    1. WebView 4.0 WebView 4.0 Android 8.0.0 Android 8.0.0
      Mozilla/5.0 (Linux; U; Android 8.0.0; zh-CN; MIX 2 Build/OPR1.170623.027) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 Quark/2.4.3.987 Mobile Safari/537.36

      都一样的,容器不一样,编码一样

  12. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

    请问一下我用电脑吧需要的文件弄好了传到树莓派上放在桌面,怎么推流呢?

  13. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

    请问一下输完推流的指令是直接播吗

  14. Chromium 65.0.3325.181 Chromium 65.0.3325.181 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

    输screen nohup sh live.sh &后显示[1] 5033
    bash: screen: 未找到命令请问一下是什么问题

  15. MIUI Browser 9.7.3 MIUI Browser 9.7.3 Android 5.0.2 Android 5.0.2
    Mozilla/5.0 (Linux; U; Android 5.0.2; zh-cn; MI 2SC Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/9.7.3

    请问一下live.sh是要保存在哪里

  16. MIUI Browser 9.7.3 MIUI Browser 9.7.3 Android 5.0.2 Android 5.0.2
    Mozilla/5.0 (Linux; U; Android 5.0.2; zh-cn; MI 2SC Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/9.7.3

    请问live.sh要保存在哪

    1. Vivaldi 1.97.1259.3 Vivaldi 1.97.1259.3 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.102 Safari/537.36 Vivaldi/1.97.1259.3

      先去学一下电脑的基本使用方法、linux的命令使用方法、计算机路径的表达方式,再来问这些问题

  17. Google Chrome 70.0.3538.110 Google Chrome 70.0.3538.110 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36

    编译时可以用双核编译,比较快

哈哈进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注