2.视频基础知识&ffmpey命令行使用

视频播放流程:
2.视频基础知识&ffmpey命令行使用_第1张图片
播放视频流程.jpeg
视频播放器分类:
  • 可视化界面播放器:腾讯视频、爱奇艺、QQ影音等
  • 非可视化界面播放器:FFmpeg框架中内置的ffplay播放器
查看视频信息工具:MediaInfo
查看视频二进制信息工具:UltraEdit
查看视频封装信息工具:
  • 查看封装格式信息工具:Elecard Format Analyzer
  • 查看视频编码信息工具:Elecard Stream Eye
  • 查看视频像素信息工具:YUVPlayer
  • 查看音频采样信息工具:Adobe Audition

封装格式介绍:
  • FLV,是flast video的简称,文件结构由文件头和许多tag组成
    FLV头文件 一般比较简单,
    FLV头文件:(9字节)1-3: 前3个字节是文件格式标识(FLV 0x46 0x4C 0x56).4-4: 第4个字节是版本(0x01)5-5: 第5个字节的前5个bit是保留的必须是0.6-9: 第6-9的四个字节还是保留的.其数据为 00000009 .整个文件头的长度,一般是9(3+1+1+4)
FLV格式.png

视频编码介绍:

视频编码作用:将视频像素数据(YUV、RGB)进行压缩,使之变成视频码流数据,从而降低视频数据大小。


2.视频基础知识&ffmpey命令行使用_第2张图片
视频编码格式.png
  • MPEG2-TS,别名TS格式,数据排版,不包含头文件,数据大小固定(188byte)的TS-Packet
MPEG2-TS格式.png
  • H264:有非常复杂的压缩算法,比如帧间预测,帧内预测等


    H.264格式.png

视频像素数据:

1.作用:保存了屏幕上面每一个像素点的值
2.格式分类:

  • RGB24
  • RGB32
  • YUV420P
  • YUV422P

3.视频像素数据文件大小计算:
例如是RGB24格式,1个小时时长,采样精度8bit:3600(秒) * 25(帧率25Hz) * 1920(屏幕大小) * 1080 (屏幕大小)* 3 (一个颜色8位,3种颜色24位,所以为三个字节)= 500多G


音频编码介绍:

音频编码作用:将音频采样数据(PCM格式)进行压缩,使之变成音频码流数据,从而降低音频数据大小。

  • AAC 具体介绍见百度...
  • MP3

音频采样数据:

1.作用:保存了音频中的每一个采样点值
2.音频采样数据大小计算:
3.大小计算:
例如一分钟PCM格式歌曲,体积:60(秒)44100(采样率,赫兹,人耳能够听的到的声音) * 2(双声道)2(采样精度16位,2个字节)=11M左右
4.PCM格式


FFmpeg命令行使用:
2.视频基础知识&ffmpey命令行使用_第3张图片
ffplay快捷键.png

1.视频转码:
命令格式:./ffmpeg -i{指定输入文件路径| -b:v{输出视频的码率}{输出文件路径}
mov转MP4、wmv转mov等

2.视频基础知识&ffmpey命令行使用_第4张图片
ffmpeg命令参数.png

2.视频播放:

./ffplay 文件名

3.转为gif动图:

./ffmpeg -ss 00:00:03 -t 3 -i Test.mov -s 640x360 -r “15” dongtu.gif
   解释:
          1、ffmpeg 是你刚才安装的程序;

          2、-ss 00:00:03 表示从第 00 分钟 03 秒开始制作GIF,如果你想从第 9 秒开始,则输入 -ss 00:00:09,或者 -ss 9,支持小数点,所以也可以输入-ss 00:00:11.3,或者 -ss 34.6 之类的,如果不加该命令,则从 0 秒开始制作;

          3、-t 3 表示把持续3 秒的视频转换为 GIF,你可以把它改为其他数字,例如 1.5,7 等等,时间越长,GIF 体积越大,如果不加该命令,则把整个视频转为 GIF;

          4、-i 表示 invert 的意思吧,转换;

          5、Test.mov 就是你要转换的视频,名称最好不要有中文,不要留空格,支持多种视频格式;

          6、-s 640x360 是 GIF 的分辨率,视频分辨率可能是 1080p,但你制作的 GIF 可以转为720p 等,允许自定义,分辨率越高体积越大,如果不加该命令,则保持分辨率不变;

          7、-r “15” 表示帧率,网上下载的视频帧率通常为 24,设为 15 效果挺好了,帧率越高体积越大,如果不加该命令,则保持帧率不变;

          8、dongtu.gif:就是你要输出的文件,你也可以把它命名为 hello.gif 等等。

你可能感兴趣的:(2.视频基础知识&ffmpey命令行使用)