美文网首页FFmpeg
第3讲-FFmepg-FFmpeg命令行

第3讲-FFmepg-FFmpeg命令行

作者: 泰克2008 | 来源:发表于2017-11-20 18:33 被阅读5次

    FFmpeg基础知识?

    第一点:一个视频播放流程?

    通常看到视频格式:mp4、mov、flv、wmv等等…
    称之为:封装格式
    
    播放视频流程.png

    第二点:视频播放器

    两种模式播放器
    第一种:可视化界面播放器(直接用户直观操作->简单易懂)
        腾讯视频、爱奇艺视频、QQ影音、暴风影音、快播、优酷等等…
    第二种:非可视化界面播放器->命令操作播放器->用户看不懂,使用起来非常麻烦
        FFmpeg->ffplay(命令)播放器(内置播放器)
                vlc播放器、mplayer播放器
    

    第三点:播放器信息查看工具

    整个视频信息:MediaInfo工具->帮助我们查看视频完整信息
    二进制查看信息:直接查看视频二进制数据(0101010)->UItraEdit
            视频单项信息
                封装格式信息工具->Elecard Format Analyzer
                视频编码信息工具->Elecard Stream Eye
                视频像素信息工具->YUVPlayer
                音频采样数据工具->Adobe Audition
    

    第四点:音视频->封装格式?

    1、封装格式:mp4、mov、flv、wmv等等…
    
    封装格式列表.png

    2、封装格式作用?

    视频流+音频流按照格式进行存储在一个文件中
    
    封装格式作用.png

    3、MPEG2-TS格式?

    视频压缩数据格式:MPEG2-TS
    特定:数据排版,不包含头文件,数据大小固定(188byte)的TS-Packet
    
    MPEG2-TS格式.png

    4、FLV格式?

    优势:由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,
    它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等问题。
    
    FLV格式.png
    文件结构:FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。
    FLV文件=FLV头文件+ tag1+tag内容1 + tag2+tag内容2 + ...+... + tagN+tag内容N。
    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)
    

    第五点:视频编码数据了解一下

    1、视频编码作用?
    将视频像素数据(YUV、RGB)进行压缩成为视频码流,从而降低视频数据量。(减小内存暂用)
    2、视频编码格式有哪些?
    3、H.264视频压缩数据格式?
    非常复杂算法->压缩->占用内存那么少?(例如:帧间预测、帧内预测…)->提高压缩性能
    
    视频编码格式.png

    第六点:音频编码数据?

    1、音频编码作用?
    将音频采样数据(PCM格式)进行压缩成为音频码流,从而降低音频数据量。(减小内存暂用)
    2、音频编码飞逝有哪些?
    AAC、MP3等等…
    3、AAC格式?
    AAC,全称Advanced Audio Coding,是一种专为声音数据设计的文件压缩格式。与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。利用AAC格式,可使人感觉声音质量没有明显降低的前提下,更加小巧。苹果ipod、诺基亚手机支持AAC格式的音频文件。
    优点:相对于mp3,AAC格式的音质更佳,文件更小。
    不足:AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在“本质上”的差距。加之,传输速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC头上“小巧”的光环不复存在。
        ①提升的压缩率:可以以更小的文件大小获得更高的音质;
        ②支持多声道:可提供最多48个全音域声道;
        ③更高的解析度:最高支持96KHz的采样频率;
        ④提升的解码效率:解码播放所占的资源更少;
    
    音频编码格式分析.png

    第七点:视频像素数据?

    1、作用?
        保存了屏幕上面每一个像素点的值
    2、视频像素数据格式种类?
        常见格式:RGB24、RGB32、YUV420P、YUV422P、YUV444P等等…一般最常见:YUV420P
    3、视频像素数据文件大小计算?
        例如:RGB24高清视频体积?(1个小时时长)
        体积:3600 * 25 * 1920 * 1080 * 3 = 559GB(非常大)
    假设:帧率25HZ,采样精度8bit,3个字节
    4、YUV播放器
        人类:对色度不敏感,对亮度敏感
        Y表示:亮度
        UV表示:色度
    
    RGB格式.png

    第八点:音频采样数据格式?

    1、作用?
        保存了音频中的每一个采样点值
    2、音频采样数据文件大小计算?
        例如:1分钟PCM格式歌曲
        体积:60 * 44100 * 2 * 2 = 11MB
        分析:60表示时间,44100表示采样率(一般情况下,都是这个采样率,人的耳朵能够分辨的声音),2表示声道数量,2表示采样精度16位 = 2字节
    3、音频采样数据查看工具?
    4、PCM格式?
        存储顺序?
    

    第九点:FFmepg应用?

    提供了一套比较完整代码->开源免费
    核心架构设计思想:(核心 + 插件)设计
    
    重要命令学习?
    1、ffmpeg.exe(视频压缩->转码来完成)
        作用:用于对视频进行转码
        将mp4->mov,mov->mp4,wmv->mp4等等…
        命令格式:./ffmpeg -i {指定输入文件路径} -b:v {输出视频码率} {输出文件路径}
        测试运行:将Test.mov->Test.mp4
    
        命令: ./ffmpeg -i Test.mov -b:v 368k Test.mp4 
    
        时间格式:如何指定?
        作业(截取视频):./ffmpeg -I Test.mov (从第10秒开始截取,视频长度为10秒)
    
        命令: ./ffmpeg -i Test.mov -t 00:00:10 -ss 00:00:10 test.mp4
    
    ffmpeg命令参数.png
    2、ffplay.exe
        作用:播放视频
        格式:ffplay {文件路径}
        命令:./ffplay Test.mov    
    
    ffplay快捷键.png

    工具

    FFmpeg、FFplay https://pan.baidu.com/s/1bN7oHC

    相关文章

      网友评论

        本文标题:第3讲-FFmepg-FFmpeg命令行

        本文链接:https://www.haomeiwen.com/subject/uwxbvxtx.html