晨旭的博客
你想干什么!
晨旭的博客~
【重写】树莓派驱动的b站点播台

请去github查看最新代码

https://github.com/chenxuuu/24h-raspberry-live-on-bilibili.git

24h-raspberry-live-on-bilibili

树莓派驱动的b站直播点播台

demo:http://live.bilibili.com/16703

https://source.papapoi.com/wp-content/uploads/2018/08/acbf6b74865ea1d48f56271e3071a539.png?imageView2/2/w/800|watermark/1/image/aHR0cDovL3NvdXJjZS5wYXBhcG9pLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxNi8wOC9sb2dvcGljLnBuZw==/dissolve/100/gravity/SouthEast/dx/10/dy/10

注意这个是新项目,查看旧版的代码请打开“old”分支查看(旧版为网页点歌版)

本项目有两个链接:

GitHub:https://github.com/chenxuuu/24h-raspberry-live-on-bilibili.git

git.osc:https://gitee.com/Young_For_You/24h-raspberry-live-on-bilibili.git


同时也可以去用smilecc大佬重构的版本:

blive-raspberry(https://github.com/smilecc/blive-raspberry)


本项目基本编写完毕,已经有的功能为:

  • 弹幕点歌
  • 弹幕点MV
  • 弹幕反馈(发送弹幕)
  • 旧版实现的视频推流功能
  • 自定义介绍字幕
  • 歌词滚动显示,同时滚动显示翻译歌词
  • 切歌
  • 显示排队播放歌曲,渲染视频
  • 通过弹幕获取实时cpu温度
  • 闲时随机播放预留歌曲
  • 播放音乐时背景图片随机选择
  • 可点播b站任意视频(会员限制除外,番剧根据b站规定,禁止点播)
  • 已点播歌曲、视频自动进入缓存,无人点播时随机播放
  • 存储空间达到设定值时,自动按点播时间顺序删除音乐、视频来释放空间
  • 实时显示歌曲/视频长度
  • 根据投喂礼物的多少来决定是否允许点播

已知问题:

  • 换歌、视频时会闪断

食用方法:

我这里用的是树莓派3B,系统2017-09-07-raspbian-stretch.img,官方默认软件源,其他配置请自测

先准备餐具:

sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libtheora-dev libtool libvorbis-dev pkg-config texinfo wget zlib1g-dev

安装x264编码器(时间较长):

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

libmp3lame:

sudo apt-get install libmp3lame-dev

libopus:

sudo apt-get install libopus-dev

libvpx:

sudo apt-get install libvpx-dev

libomxil-bellagio:

sudo apt-get install libomxil-bellagio-dev

编译并安装ffmpeg(时间较长,半小时左右):

wget http://ffmpeg.org/releases/ffmpeg-4.0.tar.bz2
tar jxvf ffmpeg-4.0.tar.bz2
cd ffmpeg-4.0
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree --enable-libass --enable-libfreetype  --enable-omx --enable-omx-rpi --enable-encoder=h264_omx --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal
make -j4
sudo make install
cd ..

(以上有一部分代码参考自ffmpeg源码编译安装(Compile ffmpeg with source) Part 2 : 扩展安装 – 人脑之战 – 博客园

安装python3的mutagen库:

sudo pip3 install mutagen

安装python3的you-get库:

sudo pip3 install you-get

安装python3的moviepy库:

sudo pip3 install moviepy

安装python3的aiohttp库:

sudo pip3 install aiohttp

安装screen:

sudo apt-get install screen

安装中文字体

sudo apt install fontconfig
sudo apt-get install ttf-mscorefonts-installer
sudo apt-get install -y --force-yes --no-install-recommends fonts-wqy-microhei
sudo apt-get install -y --force-yes --no-install-recommends ttf-wqy-zenhei
#可能有装不上的,应该问题不大

# 查看中文字体 --确认字体是否安装成功
fc-list :lang=zh-cn

(字体安装来自ubuntu下 bilibili直播推流 ffmpeg rtmp推送

设置显存

打开树莓派设置:

sudo raspi-config

选择Advanced Options,回车

选择Memory Split,回车

把数值改成256

回车,接着退出设置,重启树莓派

烹饪&摆盘:

下载本项目:

git clone https://github.com/chenxuuu/24h-raspberry-live-on-bilibili.git

git clone https://gitee.com/Young_For_You/24h-raspberry-live-on-bilibili.git

请修改下载里的var_set.py文件中的各种变量
其中,cookie需要使用小号(尽量使用小号,并且b站账户好像需要绑定手机号后才能发送弹幕)在直播间,打开浏览器审查元素,先发一条弹幕,再查看network选项卡,找到namesend的项目,Request head中的Cookie即为cookie变量的值。注意设置后,账号不能点击网页上的“退出登陆”按键,换账号请直接清除当前cookie再刷新

csrf_token请填写Request head中的csrf_token

post_dm.py文件的if(user == '接待喵'): #防止自循环请改为你的机器人的名字

标注#debug使用,请自己修改的代码请自行修改,此为debug用的代码

如有条件,请务必自己搭建php的下载链接解析服务,源码都在php文件夹内

default_mp3文件夹内放入mp3格式的音乐,在无人点歌时播放,请尽量保证文件名全英文(可要可不要,因为现在已经改为放点播过的缓存歌曲、视频了)

default_pic文件夹内放入jpg格式的图片,用于做为放音乐时的背景,请尽量保证文件名全英文,分辨率推荐统一处理为1280×720

所有配置完成后,开启直播,然后启动脚本即可:

screen python3 play.py
#按ctrl+a,按ctrl+d
screen python3 bilibiliClient.py
#按ctrl+a,按ctrl+d
#弹幕监控使用了弹幕姬python版:https://github.com/lyyyuna/bilibili_danmu
#感谢弹幕姬python版作者的分享

如有不对的地方,请提交issue,也欢迎各位改进脚本并pr

本程序协议为GPL

赞赏
如非特殊说明,本站所有文章均采用知识共享 署名-非商业性使用-相同方式共享4.0国际许可协议(CC BY-NC-SA 4.0)进行许可。

发表评论

textsms
account_circle
email

  • https://secure.gravatar.com/avatar/0cd87a151f6da469a1231f8957221d22?s=80&d=mm&r=x
    小点点
    Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

    谢谢大佬,修改了参数搬到VPS上使用

    12月前回复
  • https://secure.gravatar.com/avatar/d98e0c03bff89e3624e572e5653d8109?s=80&d=mm&r=x
    Safari 11.0.2 Safari 11.0.2 Mac OS X  10.13.2 Mac OS X 10.13.2
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/604.4.7 (KHTML, like Gecko) Version/11.0.2 Safari/604.4.7

    emmm,回头去看看

    11月前回复
  • https://secure.gravatar.com/avatar/81bd24b32bb3c10f92146734b8dc670b?s=80&d=mm&r=x
    咸鱼
    Google Chrome 65.0.3325.146 Google Chrome 65.0.3325.146 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36

    大佬

    9月前回复
    • https://secure.gravatar.com/avatar/b431bf781498d1fe47f732913dce394c?s=80&d=mm&r=x
      晨旭博主
      Vivaldi 1.96.1111.3 Vivaldi 1.96.1111.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/64.0.3282.170 Safari/537.36 Vivaldi/1.96.1111.3

      哪里是大佬了。。。

      9月前回复
  • https://secure.gravatar.com/avatar/9e1df43487b563a9ba94c94057846968?s=80&d=mm&r=x
    shibai
    Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

    拿走

    9月前回复
  • https://secure.gravatar.com/avatar/e90bb501f1e24adae4a3f711055a1015?s=80&d=mm&r=x
    咸鱼
    Vivaldi 1.93.955.42 Vivaldi 1.93.955.42 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.102 Safari/537.36 Vivaldi/1.93.955.42

    dalao

    8月前回复
  • https://secure.gravatar.com/avatar/f0e41da3e502248aead16b077f6a9261?s=80&d=mm&r=x
    浅琊
    Google Chrome 67.0.3396.99 Google Chrome 67.0.3396.99 Windows 7 Windows 7
    Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

    大佬,为什么播放一段时间后会卡死,需要手动Ctrl+C之后才能继续播放

    5月前回复
    • https://secure.gravatar.com/avatar/b431bf781498d1fe47f732913dce394c?s=80&d=mm&r=x
      晨旭博主
      Vivaldi 1.97.1230.3 Vivaldi 1.97.1230.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.1230.3

      自己寻找原因吧,给的信息太少了
      另外反馈问题应该去GitHub啊。。

      5月前回复

晨旭的博客~

【重写】树莓派驱动的b站点播台
请去github查看最新代码 https://github.com/chenxuuu/24h-raspberry-live-on-bilibili.git 24h-raspberry-live-on-bilibili 树莓派驱动的b站直播点播台 demo:http://live.bilibili.c…
扫描二维码继续阅读
2017-11-23