Linux 系统做哔哩哔哩视频网站推流

2019-01-14 0 By admin

一般哔哩哔哩网站的UP主,都是使用Windows的推流软件做视频直播;最近有些空,就研究一下怎么使用Linux系统做视频推流直播。
Linux 系统我最熟悉就是CentOS了,所以就选择了CentOS 7 用来搭建环境。推流软件是ffmpeg。
下面简单说明一下过程:

一、ffmpeg 工具安装

首先安装epel的扩展源
yum -y install epel-release
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
yum -y install ffmpeg ffmpeg-devel

以上执行完成,ffmpeg推流软件就算安装完成了。

1.1、ffmpeg 运行异常修复

安装完成后,执行version指令参数,检查ffmpeg是否可以正常执行。
ffmpeg -version
ffmpeg: symbol lookup error: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard

如上:如ffmpeg不能正常执行,并报以上错误;则需要更新一下系统的glib2软件包。
yum update glib2

二、、哔哩哔哩操作

在官网上开通直播的权限,并开启一个直播房间。会获得rmtp地址和直播码。
RMTP地址:rtmp://qn.live-send.acg.tv/live-qn/
直播码:?streamname=live_38*******&key=ed*******

三、准备视频文件

HTML5 的video标签播放视频时,如果只有声音,没有图像;很有可能是视频的编码问题。
MP4有三种编码,分别是mpg4(xdiv),,mpg4(xvid),avc(h264)。其中只有h264是公认的标准编码。
另外ffmpeg不能很好的推送RMVB格式的文件,请不要使用这种格式的文件。

四、推流操作

4.1、单视频文件

ffmpeg -re -i "friends_0901.avi" -c copy -f flv "rtmp://qn.live-send.acg.tv/live-qn/?streamname=live_38*******&key=ed*******"

4.2、多视频文件夹

#!/bin/bash
video_path="/data/videos/friends09/"
for file in `ls ${video_path}`
do
ffmpeg -re -i "${video_path}${file}" -c copy -f flv "rtmp://qn.live-send.acg.tv/live-qn/?streamname=live_38*******&key=ed*******"
done