ffmpeg实战教程(九)windows下ffmpeg命令+nginx+rtmp实
现推流,拉流。
ffmpeg实战教程(九)windows下ffmpeg命令+nginx + rtmp实现推流,拉流。
2017年05⽉15⽇ 14:41:14
阅读数:8144
概述
Nginx是⼀款轻量级的Web 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器。
nginx-rmtp-module是Nginx服务器的流媒体插件。
nginx通过rtmp模块提供rtmp服务, ffmpeg推送⼀个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流。
先介绍⼀下windows下搭建nginx + rtmp
#f
rtmp {
server {
listen 1935;
chunk_size 4000;
# TV mode: one publisher, many subscribers
application wstv{
# enable live streaming
live on;
# record first 1K of stream
record all;
record_path /tmp/av;
record_max_size 1K;
# append current timestamp to each flv
record_unique on;
# publish only from localhost
allow publish 127.0.0.1;
deny publish all;
#allow play all;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
4.编译
./configure --add-module=/path/to/nginx-rtmp-module
make
make install
1
2
3
4
注意nginx版本在nginx (1.3.14 - 1.5.0)的configure 命令如下:
./configure –add-module=/path/to/nginx-rtmp-module –with-http_ssl_module
5.开启服务器,测试
浏览器输⼊localhost:80
Nginx的启动、停⽌等命令
1、启动:
C:\nginx-1.10.2>start nginx
或
C:\nginx-1.10.2&
注:建议使⽤第⼀种,第⼆种会使你的cmd窗⼝⼀直处于执⾏中,不能进⾏其他命令操作。
2、停⽌:
C:\nginx-1.10.2& -s stop
或
C:\nginx-1.10.2& -s quit
注:stop是快速停⽌nginx,可能并不保存相关信息;quit是完整有序的停⽌nginx,并保存相关信息。
3、重新载⼊Nginx:
C:\nginx-1.10.2& -s reload
当配置信息修改,需要重新载⼊这些配置时使⽤此命令。
FFmpeg推流
推流拉流地址:rtmp://localhost:1935/wstv/home
在桌⾯上放置⼀个名称为ws2.avi的视频⽂件
cd到桌⾯输⼊:
ffmpeg -re -i ws2.avi -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/wstv/home
1
拉流
打开vlc播放器
输⼊拉流地址:
rtmp://localhost:1935/wstv/home
1
然后命令⾏回车,再点击vlc的播放按钮。
当然也可以在⽹页端⼝写点js代码,也能⽀持播放。如果你的⼿机播放器⽀持rtmp流媒体协议也是可以播放的。nginx停止命令
如果你觉得推⼀个流,拉⼀个流不过瘾,直播可是同时有n多个流在推拉,接着你可以再开⼀个cmd,在推⼀个也是可以的。下⾯记录⼀些ffmpeg常⽤命令。
1.如果希望将桌⾯录制或者分享,可以使⽤命令⾏如下:
ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:1935/wstv/home
1
这个只能够推桌⾯。
1
2
2.如果需要桌⾯+麦克风,⽐如⼀般做远程教育分享 命令⾏如下:
ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/wstv/home
1
这个可以推桌⾯+麦克风。
1
2
3.如果需要桌⾯+麦克风,并且还要摄像头拍摄到⾃⼰,⽐如⼀般⽤于互动主播,游戏主播,命令⾏如下
ffmpeg -f avfoundation -framerate 30 -i "1:0" \-f avfoundation -framerate 30 -video_size 640x480 -i "0" \-c:v libx264 -preset ultrafast \-filter_complex 'overla 1
这个可以推桌⾯+麦克风,并且摄像头把⼈头放在界⾯下⾯
1
2
FFmpeg常⽤基本命令
1.分离视频⾳频流
ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio //分离⾳频流
1
2
2.视频解复⽤
ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
1
2
3.视频转码
ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //转码为码流原始⽂件
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //转码为码流原始⽂件
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装⽂件
1
2
3
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论