树莓派小车系列-直播
一、获取直播码
直播嘛,需要开通直播间。 一开始,我自己搭建了视频流服务器,但是,太卡了。
后来我注册了一些直播平台,如bilibili,直播地址每隔一段时间就需要去获取一次,太麻烦了。虽然有非官方的获取直播码的插件,但是可能不稳定,也不安全。
后来看到了腾讯云直播,可以通过接口获取直播链接,但是,收费!由于我也不是一直使用,新用户也有20g流量,暂时够用。

我分别绑定了自己的域名,一个liveplay,一个livepush。
点击livepush的管理,可以看到获取推流地址的方式,也可以在线生成一个。

我先偷个懒,点击直接生成推流地址,腾讯云提供了自己生成地址的示例。
二、树莓派上安装FFMPEG
如果树莓派还没有安装过ffmpeg,那么先安装下ffmpeg
开启ffmpeg的H264功能,需要手动编译。不然,视频帧率就提不上去。
1.安装编译工具
apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev libmp3lame-dev libopus-dev libbz2-dev git libgnutls28-dev libomxil-bellagio-dev
2.下载编译x64
git clone https://code.videolan.org/videolan/x264.git
cd x264/
git checkout stable
sudo ./configure --disable-shared --enable-static --enable-strip --disable-cli
sudo make -j4
sudo make install
3.下载编译ffmpeg
wget https://github.com/xbmc/FFmpeg/archive/4.0.4-Leia-18.4.tar.gz
tar -xzpf 4.0.4-Leia-18.4.tar.gz
cd FFmpeg-4.0.4-Leia-18.4
PREFIX=/usr/local
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-static --disable-shared --prefix=$PREFIX --disable-opencl --disable-thumb --disable-pic --disable-stripping --enable-small --enable-ffmpeg --enable-ffplay --enable-ffprobe --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --disable-manpages --disable-everything --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 --enable-encoder=aac --enable-decoder=aac --enable-encoder=ac3 --enable-decoder=ac3 --enable-encoder=rawvideo --enable-decoder=rawvideo --enable-encoder=mjpeg --enable-decoder=mjpeg --enable-demuxer=concat --enable-muxer=flv --enable-demuxer=flv --enable-demuxer=live_flv --enable-muxer=hls --enable-muxer=segment --enable-muxer=stream_segment --enable-muxer=mov --enable-demuxer=mov --enable-muxer=mp4 --enable-muxer=mpegts --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-muxer=matroska --enable-demuxer=matroska --enable-muxer=wav --enable-demuxer=wav --enable-muxer=pcm* --enable-demuxer=pcm* --enable-muxer=rawvideo --enable-demuxer=rawvideo --enable-muxer=rtsp --enable-demuxer=rtsp --enable-muxer=rtsp --enable-demuxer=sdp --enable-muxer=fifo --enable-muxer=tee --enable-parser=h264 --enable-parser=aac --enable-protocol=file --enable-protocol=tcp --enable-protocol=rtmp --enable-protocol=cache --enable-protocol=pipe --enable-filter=aresample --enable-filter=allyuv --enable-filter=scale --enable-libfreetype --enable-indev=v4l2 --enable-indev=alsa --enable-indev=alsa --enable-outdev=alsa --enable-omx --enable-omx-rpi --enable-encoder=h264_omx --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal
make -j4
make install
4.验证安装
ffmpeg -version

5.推送一段小视频
sudo ffmpeg -re -i big_buck_bunny.mp4 -c copy -f flv "rtmp://livepush.xujialiang.net/live/wibbly?txSecret=xxx&txTime=xxx"
这个地址从哪里来的?点这里的生成推流地址,可直接生成。如果是无人值守,客自己实现生成推流地址。

运行命令成功后,可看到如下图

可以看到,速度还是挺理想的。
6.播放
腾讯云直播也可以直接生成直播地址,mac 可用自带的quicktime播放。




参考文章
https://holmesian.org/Raspberry-Pi-optimized-FFmpeg-with-HW-Acceleration
https://blog.csdn.net/Tang_Chuanlin/article/details/85244429