ffmpeg命令格式:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[options][`-i' input_file]]... {[options] output_file}...
1、参数选项:
(1) -an: 去掉音频
(2) -acodec: 音频选项, 一般后面加copy表示拷贝
(3) -vcodec:视频选项,一般后面加copy表示拷贝
2、格式:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3)mpegts: 表示ts视频流
1.列出可用设备:ffmpeg -list_devices true -f dshow -idummy (window)
ffmpeg -f avfoundation -list_devices true -I '' '' (Mac)
2.推流:ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -vcodec libx264 -acodec copy -b 780k -r 60 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://193.112.101.157:1935/hls/test ------(window)
推流优化:-b 780k -r 60 -b 推流流量 -r 码率
-f flv rtmp://IP:1935/hls/test IP推流地址 test 是文件名,可以随便取
1.下载Nginx解压,并添加rtmp和openssl支持
[root~]# wget http://nginx.org/download/nginx-1.12.1.tar.gz
[root~]# tar -zxvf nginx-1.12.1.tar.gz
2.下载nginx-rtmp-module 并安装
[root~]# yum -y install openssl openssl-devel//安装一下openssl,不然下面可能会报错
[root~]# git clone https://github.com/arut/nginx-rtmp-module.git
[root~]# ./configure --add-module=/替换为自己的安装路径(path/to)/nginx-rtmp-module --with-http_ssl_module
[root~]# make && make install
[root~]# /usr/local/nginx/sbin/nginx //启动nginx
浏览器打开localhost:8080,出现下图成功安装
重启nginx后报错,pid丢失:
去到 sbin目录下 输入下面的指令
nginx -c /usr/local/nginx/nginx.conf
3.配置nginx.conf
在server里添加下面代码
在配置文件最后添加下面这段
#HLS配置开始,这个配置为了`客户端`能够以http协议获取HLS的拉流
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /home/video;
add_header Access-Control-Allow-Origin *;//跨域配置
add_header Cache-Control no-cache;
}
#HLS配置结束
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
server {
listen 1935;
ping 30s;
notify_method get;
application myapp {
live on;
record off;
max_connections 1024;
}
#增加对HLS支持开始
application hls {
live on;
hls on;
hls_path /home/video/hls;
hls_fragment 2s;
hls_playlist_length 3s;
}
#增加对HLS支持结束
}
}
4.nginx操作:
nginx 服务器重启命令,关闭
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx
videojs播放