技术这条路上总是路漫漫其修远兮,吾将上下而求索兮~~
下面是一个简述,特别是新手建议仔细读读,知道这个是什么,免得一头雾水,大牛就免了。
一、简述:
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
它提供了非常强大的功能,可以完成音视频的编码、解码、转码、视频采集、后处理(抓图、水印、封装/解封装、格式转换等),还有流媒体服务等诸多功能,可以说涵盖了音视频开发中绝大多数的领域。原生的FFmpeg是在Linux环境下开发的,但是通过各种方法(比如交叉编译等)可以使它运行在多种平台环境上,具有比较好的可移植性。
FFmpeg项目的官方网址为:https://ffmpeg.org/。
FFmpeg的64位下载地址: https://ffmpeg.zeranoe.com/builds/win64/static/
可以根据你的需求下载不同版本;
构成FFmpeg主要有三个部分,第一部分是四个作用不同的工具软件
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3/SMTP)代理服务器。能够支持高达 50,000 个并发连接数的响应(支持高并发)。
nginx官网:http://nginx.org/
下载nginx-rtmp-windows版:https://github.com/illuspas/nginx-rtmp-win32
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP协议;
二、安装环境
1.启动nginx
解压好ffmpeg,nginx后,cmd打开黑窗口---进入nginx解压路径---执行如下步骤:
以上步骤运行nginx,如果启动了可以看到:进程中有配置好的端口号;
新开一个黑窗口cmd-------netstat -ano 看到如下都以说明nginx这个服务已经启动;
2.启动ffmpeg
新打开一个黑窗口cmd,进入ffmpeg解压路径,找到并启动ff-prompt.bat(当然也可以直接找到它,双击打开就可以了,是一样的),启动后如下图所示:
3测试一下
在ffmpeg测斌目录下可以看到:ffmpeg.exe,ffplay.exe,ffprobe.exe三个部分;
3.1】测试ffplay.exe 在bin目录下执行ffplay.exe
执行后可以观看到视频:(左边黑窗口中可以看到视频的一些数据,格式,分辨率,视频时间,播放时间等等数据)
3.2】测试ffprobe的使用:
ffprobe可以提供简单的音视频文件分析功能。最简单的方法同ffplay类似:
ffprobe.exe -i../video/IMG_0886.MOV
分析完成后,ffprobe会显示音视频文件中包含的每个码流的信息,包括编码格式、像素分辨率、码率、帧率等信息:
执行后可以看到分析的数据;
3.3】测试ffmpeg的使用
ffmpeg.exe可谓是整个工程的核心所在,它的主要功能是完成音视频各种各样的转换操作。
ffmpeg支持的所有编码器格式可以通过以下命令查看:
ffmpeg.exe–encoders
转码操作:
ffmpeg -i C:\Users\Administrator\Desktop\mp4\video.mp4 -c copy C:\Users\Administrator\Desktop\mp4\video.avi
执行命令后,可以看到在原来文件夹中生成了一个avi格式视频,再次执行ffplay.exe后可以观看本视频。
@REM提取视频流
ffmpeg–i C:\Users\Administrator\Desktop\mp4\video.mp4 -c:v copy –anC:\Users\Administrator\Desktop\mp4\video11.mp4
@REM提取音频流
ffmpeg-i C:\Users\Administrator\Desktop\mp4\video.mp4 -c:a copy -vnC:\Users\Administrator\Desktop\mp4\video1.aac
视频截取:使用ffmpeg命令并指定参数-ss和-t,分别表示截取开始时刻和截取时长
@REM视频截取
ffmpeg-ss 5 -t 5 -i "C:\Users\Administrator\Desktop\mp4\video (2).mp4" -ccopy
"C:\Users\Administrator\Desktop\mp4\videooo.mp4"
测试视频直播:
以下这条命令,是把本地的视频流,推送到 rtmp://localhost:1935/live/polo,然后用第二条命令ffplay去播放,注意的是一定要边推送,边播放,才能看到效果;
1. ffmpeg.exe -re -i C:\Users\Administrator\Desktop\mp4\video(2).mp4-vcodec libx264 -f flv rtmp://localhost:1935/live/polo
2. ffplay -i rtmp://localhost:1935/live/polo
下面这个可以直接监控流:
http://localhost:8082/index.html可以监控流
命令参考:
pkill -9 nginx 杀死nginx 进程
netstat -tlnp|grep 1935 查询1935端口那个在占用
参考文章:
http://blog.csdn.net/chenyefei/article/details/52289731
http://blog.csdn.net/gold__sun/article/details/50563130
http://lib.csdn.net/article/liveplay/37929
http://blog.chinaunix.net/uid-26000296-id-5747703.html