一、无人直播背景
无人直播是指利用人工智能技术、自动化设备和云计算等技术手段,通过无人值守方式进行直播。它最初应用在产品展示、景区旅游、网络购物和安防监控等方面。无人直播可以有效降低直播运营成本,扩大传播范围,提升直播效果和用户体验,得到广泛应用和认可。在无人直播中,直播设备和平台可以集成采集、编码、推流、转码、分发等功能,实现自动化运营和智能管理。同时,无人直播还可以通过人工智能算法和数据分析来优化直播内容和推广策略,增强用户粘性和参与度。然而,由于技术和资金等方面的限制,无人直播目前还处于发展初期,其应用场景和商业模式仍然需要不断探索和创新。
二、服务器利用FFmpeg 推流直播
1、不同服务器安装 FFmpeg
- 在 Ubuntu 系统上安装 FFmpeg 的步骤:
打开终端,输入以下命令更新软件包列表:
sudo apt-get update
sudo apt-get install ffmpeg
安装完成后,可以在终端输入 ffmpeg -version 命令验证是否安装成功,如果成功安装,会显示 FFmpeg 的版本信息。
- 在Centos系统上安装FFmpeg的步骤:
yum -y install gcc cc cl
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure && make && make install
wget http://www.ffmpeg.org/releases/ffmpeg-3.4.tar.gz
tar -xvf ffmpeg-3.4.tar.gz
cd ffmpeg-3.4/
./configure && make && make install
安装完成后,可以在终端输入 ffmpeg -version 命令验证是否安装成功,如果成功安装,会显示 FFmpeg 的版本信息。
- 我用的服务器是debian,进行安装的
wget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz
tar -xJf ffmpeg-4.0.3-64bit-static.tar.xz
cd ffmpeg-4.0.3-64bit-static
mv ffmpeg /usr/bin && mv ffprobe /usr/bin && mv qt-faststart /usr/bin && mv ffmpeg-10bit /usr/bin
安装完成后,可以在终端输入 ffmpeg -version 命令验证是否安装成功,如果成功安装,会显示 FFmpeg 的版本信息。
2、单个视频循环推流
下好FFmpeg之后,开启b站直播间
开启直播地址link.bilibili.com/p/center/in…
推流地址:服务器地址+串流密钥
准备视频test1.mp4放在/root/Videos下面
执行命令
ffmpeg -re -stream_loop -1 -i "/root/Videos/test.mp4" -c copy -f flv "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_108920970_4333552&key=4fed843cda63dc94f1ab4bae9401b4b5&schedule=rtmp&pflag=1"
看看B站效果
循环播放实现!
3、如果要放多个视频呢
准备文档video_paths.txt放在/root文件夹下
video_paths.txt其内容为:
file '/root/Videos/test1.mp4'
file '/root/Videos/test2.mp4'
执行命令,播放一遍/root/Videos文件夹下面的视频
ffmpeg -f concat -safe 0 -i /root/video_paths.txt -c copy -f flv "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_108920970_4333552&key=4fed843cda63dc94f1ab4bae9401b4b5&schedule=rtmp&pflag=1"
由于只能播放完video_paths.txt文档下面的内容,推流就会结束,于是写了一个xshell脚本play_videos.sh循环播放文档列表
play_videos.sh内容
#!/bin/bash
while true
do
ffmpeg -f concat -safe 0 -i /root/video_paths.txt -c copy -f flv "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_108920970_4333552&key=4fed843cda63dc94f1ab4bae9401b4b5&schedule=rtmp&pflag=1"
done
echo "全部视频已推流完毕,脚本执行结束。"
执行shell脚本
./play_videos.sh