使用树莓派进行24小时视频直播

概述

其实做这个就是为了可以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这样子,所以要有一个重新命名视频文件的脚本,比如下面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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小时运行着的播放脚本,比如下面

1
2
3
4
5
6
7
8
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