FFMPEG框架和应用基础的学习

目录

一:MediaInfo软件的使用--可以查看视频文件的详细信息

二:视频文件不同格式

三:视频编码数据

四:主要的封装格式

五:视频像素数据

六:RGB格式简介

七:YUV格式的了解

7.1 YUV格式简介

7.2 YUV格式播放

八:视频播放器原理

扫描二维码关注公众号,回复: 14287778 查看本文章

了解FFmpeg:

应用FFmpeg:

九:FFmpeg命令使用

十: FFmpeg转码

十一:FFmpeg其他的一些命令

十二:ffplay命令


一:MediaInfo软件的使用--可以查看视频文件的详细信息

使用非常简单,点击打开文件,再点击查看文本,即可查看详细视频文件数据信息

 

二:视频文件不同格式

这些电影文件有不同的格式,用不同的后缀表示:avi,rmvb,mp4,flv,mkv等等(当然也使用不同的图标)。在这里需要注意的是,这些格式代表的是封装格式。

封装格式:就是把视频数据和音频数据打包成一个文件的规范。  

封装格式的作用:视频码流和音频码流按照一定的格式存储在一个文件中。

三:视频编码数据

视频编码的作用:将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。

H.264格式简介:

四:主要的封装格式

五:视频像素数据

5.1 视频像素数据作用:保存了屏幕上每个像素点的像素值。

5.2 格式:

      常见的像素数据格式有RGB24, RGB32, YUV420P,YUV422P,YUV444P等。压缩编码中一般使用的是YUV格式的像素数据,最为常见的格式为YUV420P。

5.3 特点  视频像素数据体积很大。

一般情况下1小时高清视频的RGB24格式的数据体积为:

  3600*25*1920*1080*3=559.9GByte(这里假定帧率为25Hz,取样精度8bit)

六:RGB格式简介

Red Green Blue三种颜色可以混合成世界上所有的颜色

彩色图像中的每个点,由R G B三个分量组成

以RGB24为例 图像像素数据的存储方式如下图所示

也可以看出,RGB24依次存储了每个像素点的R G B信息

BMP中存储的就是RGB格式的数据

七:YUV格式的了解

7.1 YUV格式简介

YUV格式中,Y只包含亮度信息,而UV只包含色度信息。

相关实验表明,人眼对亮度敏感而对色度不敏感。因而可以将亮度信息和色度信息分离,并对色度信息采用更“狠”一点的压缩方案,从而提高压缩效率。

从数据占比来说,UV信息的数据量是Y的1/2。

7.2 YUV格式播放

八:视频播放器原理

了解FFmpeg:

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 

使用广泛,使用FFmpeg作为内核的视频播放器Mplayer,射手播放器,暴风影音,KMPlayer,QQ影音...

使用FFmpeg作为内核的转码器:格式工厂,狸窝视频转换器,暴风转码...

应用FFmpeg:

暴风影音,腾讯视频,爱奇艺等他们底层都用到FFMPEG
行车记录仪。
智能安防(监控)。
RTSP流媒体服务器。
格式工厂。
抖音,头条,快手等app

QQ中使用:

九:FFmpeg命令使用

如下命令:

  ffmpeg -i input.avi -b:v 640k output.ts

该命令将当前文件夹下的input.avi文件转换为output.ts文件,并将output.ts文件视频的码率设置为640kbps。

命令格式:ffmpeg -i {输入文件路径} -b:v {输出视频码率} {输出文件路径}

十: FFmpeg转码

10.1输出 YUV420P 原始数据

ffmpeg -i test.mp4 test.yuv

10.2 将avi文件转为mp4

ffmpeg -i input.avi output.mp4

10.3从视频前10s中提取图像,1s提取一帧

ffmpeg -i test.mp4 -t 10 -r 1 -f image2 pic-%03d.jpeg

十一:FFmpeg其他的一些命令

ffmpeg -vcodec mpeg4  -vd x11:0,0 -s 1024x768 ~/test.avi

-vd x11:0,0 指录制所使用的偏移为 x=0 和 y=0,-s 1024×768 指录制视频的大小为 1024×768。录制的视频文件为 test.avi,将保存到用户主目录中

重新调整视频尺寸大小:

ffmpeg -vcodec mpeg4 -i ~/test.avi -s 800×600 ~/test-800-600.avi

参数说明:

十二:ffplay命令

命令将播放当前文件夹下的input.avi文件。

ffplay input.avi

命令格式:  ffplay {输入文件路径}

快捷键:

猜你喜欢

转载自blog.csdn.net/m0_56051805/article/details/124975962