- 安装ffmpeg
- 将下载的ffmpeg-4.1.tar.bz2(官网http://ffmpeg.org/download.html)拷贝至服务器目录下
- 解压:tar -xvzf ffmpeg-4.1.tar.bz2
- cd ffmpeg-4.1
- 配置:./configure
- 编译:make(耗时较长)
- 安装:make install
常见问题:
- 错误:yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild
解决办法:①安装合适版本的yasm
https://blog.****.net/yzhang6_10/article/details/75635734
②配置时使用:./configure --disable-x86asm
2.编译ffmpeg过程报错gcc is unable to create an executable file. If gcc is a cross-compiler,
原因:linux系统没有安装gcc编译器,yum install gcc
- 安装red5
- 将下载的red5-server-1.0.6-RELEASE-server.tar.gz
(https://github.com/Red5/red5-server/releases)拷贝至服务器目录下
2)解压:tar -xvzf red5-server-1.0.6-RELEASE-server.tar.gz
3)cd red5-server
4)设置为可执行chmod +x *.sh
5)编辑配置文件/webapps/live/WEB-INF/red5.properties文件,增加0.0.0.0 IP地址
6)启动安装:./red5.sh
启动以后访问:192.168.100.222:5080,出现以下界面即为成功
http://192.168.100.222:5080/demos/publisher.html
本次采用的是自定义直播见面即:red5\webapps\oflaDemo\ index.html,修改以下红框部分js代码(附JWplayer参数介绍https://blog.****.net/keji_123/article/details/78951208)。
保存以后浏览器访问:
http://192.168.100.222:5080/oflaDemo/index.html
注:此时页面并无视频直播画面,需执行第三步读码解码命令,目前常见的设备类型有海康威视、大华,它们命令有所不同下面有介绍(本次采用的是海康设备,故大华命令不敢保证正确性)。
常见问题:
Red5 Run Unrecognized VM option 'MaxMetaspaceSize=128m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
这个问题原因:当前环境使用的是java7或更低版本,把编译环境改为java8后就OK了。
- 视频读码解码
海康: rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
说明: username: 用户名。例如admin。 password: 密码。例如12345。 ip: 为设备IP。例如 192.168.100.222 port: 端口号默认为554,若为默认可不填写。 codec:有h264、MPEG-4、mpeg4这几种。 channel: 通道号,起始为1。例如通道1,则为ch1。 subtype: 码流类型,主码流为main,辅码流为sub。
例如:
ffmpeg -i "rtsp://admin:1234567a@192.168.100.53:554/h264/ch1/main/av_stream" -b 1024k -f flv -r 25 -s 640x480 -an "rtmp://192.168.100.222/oflaDemo/dt"
大华: rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0 说明: username: 用户名。例如admin。 password: 密码。例如admin。 ip: 为设备IP。例如 192.168.100.222 port: 端口号默认为554,若为默认可不填写。 channel: 通道号,起始为1。例如通道2,则为channel=2。 subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1
例如,请求某设备的通道2的辅码流,
ffmpeg -i
"rtsp://admin:dsgbridge@192.168.100.222:554/cam/realmonitor?channel=2&subtype=1" -vcodec h264 -f flv -an "rtmp://192.168.100.222/oflaDemo/dt "