FFmpeg学习笔记

FFmpeg介绍

一个强大的音视频编解码内核工具(OR百度百科)

FFmpeg获取

ffmpeg官网:http://ffmpeg.org/

ffmpeg编译好的包:https://ffmpeg.zeranoe.com/builds/

ffmpeg有三个版本:static,shared,dev。static版本包含了三个静态编译ffmpeg的工具"ffmpeg,ffplay,ffprobe",ffmpeg集成转码等功能,ffplay集成播放显示等功能,ffprobe集成格式查看等功能;shared版本包含了三个静动态编译ffmpeg的工具"ffmpeg,ffplay,ffprobe"和一些动态库(windows->*.dll,linux->*.so);dev版本为开发者版本,里面包含了开发者基于ffmpeg代码级别开发的include头文件lib库文件,但是不含动态库文件,所以ffmpeg的代码级别的开发者需要下dev+shared版本两个才能进行代码级别的开发。

FFmpeg命令行使用

下载static版或者shared版本可以直接使用命令行对ffmpeg等工具进行操作。

.avi转码.mp4

ffmpeg -i dnf.avi dnf.mp4

指定码率

ffmpeg -i dnf.avi -b:v 500k dnf.mp4

从第20秒开始转码

ffmpeg -ss 20 -i dnf.avi -b:v 500k dnf.mp4

从第20秒开始转码,并截取视频长度为30秒

ffmpeg -ss 20 -t 30 -i dnf.avi -b:v 500k dnf.mp4

设置帧率为10帧

ffmpeg -ss 20 -t 30 -i dnf.avi -b:v 500k -r 10 dnf.mp4

设置分辨率为320*240

ffmpeg -ss 20 -t 30 -i dnf.avi -b:v 500k -r 10 -s 320*240 dnf.mp4

设置音频采样率为44100HZ

ffmpeg -ss 20 -t 30 -i dnf.avi -b:v 500k -r 10 -s 320*240 -ar 44100 dnf.mp4

播放视频

ffpaly dnf.avi  注(ffpaly 快捷键):q/ESC退出,f全屏,p/space暂停,鼠标移动点击跳转到指定位置。

FFmpeg在VS下的环境配置

下载dev和shared版本

在包含目录添加dev版本下的include路径,在库目录添加dev版本下的lib路径,链接lib路径下的*.lib文件。dll文件放在工程目录下即可开始愉快的基于ffmpeg代码开发(注:这里为做笔记,并没有详细介绍)。

附加笔记

1.可直接送入音视频硬件的数据为:RGB(RGB24 RGB32),YUV(YUV420 YUV422),PCM。

2.YUV和PCM在打开时需要指定正确分辨率和采样率等信息才能打开,否则会错乱,因为它们的存取格式没有头信息,只有数据信息。而RGB有头信息所以可以直接打开,比如BMP文件。

3.YUV可以通过RGB互转,由于人眼对Y(亮度)信息敏感,对UV(色彩)信息部敏感,所以YUV信息可以保留多的Y信息,适当的压缩UV信息。存储格式为YYYYYYYYYYYYYYYY```UUUUU```VVV```

4.PCM为音频的采样信息,存储格式为LRLRLR···LR,存储左右声道的采样值,44100HZ的意思是每秒左右声道各采样44100个信息。每个点的信息可以使整形,浮点等,所以不同的存储方式可以有不同的大小。

5.视频的封装格式有flv avi rmvb mp4,里面包含了各种流信息,比如视频,音频,字幕等,就是对各种信息的打包封装。

6.音视频的编码格式有HEVC(h265) h264 mpeg mp3 aac等,因为裸数据(rgb yuv pcm)太大,硬盘无法如此存储,网络无法这样传输,所以需要编解码。

n.待续,继续学习中···

更多学习链接

雷神的FFmpeg:https://blog.csdn.net/leixiaohua1020/article/details/15811977

FFmpeg的基础使用:https://www.jianshu.com/p/ddafe46827b7

 

你可能感兴趣的:(音视频,FFmpeg)