FFmpeg的基础知识
第一点:一个视频播放流程?
视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步
通常看到视频格式:mp4、mov、flv、wmv等等…
称之为:封装格式
第二点:视频播放器
两种模式播放器
第一种:可视化界面播放器(直接用户直观操作->简单易懂)
腾讯视频、爱奇艺视频、QQ影音、暴风影音、快播、优酷等等…
第二种:非可视化界面播放器->命令操作播放器->用户看不懂,使用起来非常麻烦
FFmpeg->ffplay(命令)播放器(内置播放器)
vlc播放器、mplayer播放器
第三点:播放器信息查看工具
整个视频信息:MediaInfo工具->帮助我们查看视频完整信息
二进制查看信息:直接查看视频二进制数据(0101010)->UItraEdit
视频单项信息
封装格式信息工具->Elecard Format Analyzer
视频编码信息工具->Elecard StreamEye
视频像素信息工具->YUVPlayer
音频采样数据工具->Adobe Audition
第四点:音视频->封装格式?
1、封装格式:mp4、mov、flv、wmv等等…
2、封装格式作用?
视频流+音频流按照格式进行存储在一个文件中
3、MPEG2-TS格式?
视频压缩数据格式:MPEG2-TS
特定:数据排版,不包含头文件,数据大小固定(188byte)的TS-Packet
4、FLV格式?
优势:由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等问题。
文件结构: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视频压缩数据格式?
非常复杂算法->压缩->占用内存那么少?(例如:帧间预测、帧内预测…)->提高压缩性能
第六点:音频编码数据?
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的采样频率;
④提升的解码效率:解码播放所占的资源更少;
第七点:视频像素数据?
1、作用?
保存了屏幕上面每一个像素点的值
2、视频像素数据格式种类?
常见格式:RGB24、RGB32、YUV420P、YUV422P、YUV444P等等…一般最常见:YUV420P
3、视频像素数据文件大小计算?
例如:RGB24高清视频体积?(1个小时时长)
体积:3600 * 25 * 1920 * 1080 * 3 = 559GB(非常大)
假设:帧率25HZ,采样精度8bit,3个字节
4、YUV播放器
人类:对色度不敏感,对亮度敏感
Y表示:亮度
UV表示:色度
第八点:音频采样数据格式?
1、作用?
保存了音频中的每一个采样点值
2、音频采样数据文件大小计算?
例如:1分钟PCM格式歌曲
体积:60 * 44100 * 2 * 2 = 11MB
分析:60表示时间,44100表示采样率(一般情况下,都是这个采样率,人的耳朵能够分辨的声音),2表示声道数量,2表示采样精度16位= 2字节
3、音频采样数据查看工具?
4、PCM格式?
存储顺序?
第九点:FFmepg应用?
提供了一套比较完整代码->开源免费
核心架构设计思想:(核心 + 插件)设计
重要命令学习?
1.获取视频的信息
ffmpeg -i video.avi
2.将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg
上面的命令会把当前目录下的图片(名字如:image1.jpg. image2.jpg. 等…)合并成video.mpg
3.将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg
上面的命令会生成image1.jpg. image2.jpg. …
支持的图片格式有:PGM. PPM. PAM. PGMYUV. JPEG. GIF. PNG. TIFF. SGI
4.为视频重新编码以适合在iPod/iPhone上播放
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
说明:
* 源视频:source_video.avi
* 音频编码:aac
* 音频位率:128kb/s
* 视频编码:mpeg4
* 视频位率:1200kb/s
* 视频尺寸:320 X 180
* 生成的视频:final_video.mp4
5.为视频重新编码以适合在PSP上播放
ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4
说明:
* 源视频:source_video.avi
* 音频编码:aac
* 音频位率:32kb/s
* 视频编码:xvid
* 视频位率:1200kb/s
* 视频尺寸:320 X 180
* 生成的视频:final_video.mp4
6.从视频抽出声音.并存为Mp3
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
说明:
* 源视频:source_video.avi
* 音频位率:192kb/s
* 输出格式:mp3
* 生成的声音:sound.mp3
7.将wav文件转成Mp3
ffmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3
8.将.avi视频转成.mpg
ffmpeg -i video_origine.avi video_finale.mpg
9.将.mpg转成.avi
ffmpeg -i video_origine.mpg video_finale.avi
10.将.avi转成gif动画(未压缩)
ffmpeg -i video_origine.avi gif_anime.gif
11.合成视频和音频
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
12.将.avi转成.flv
ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
13.将.avi转成dv
ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv
或者:
ffmpeg -i video_origine.avi -target pal-dv video_finale.dv
14.将.avi压缩成divx
ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
15.将Ogg Theora压缩成Mpeg dvd
ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_terminate.mpg
16.将.avi压缩成SVCD mpeg2
NTSC格式:
ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg
PAL格式:
ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg
17.将.avi压缩成VCD mpeg2
NTSC格式:
ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg
PAL格式:
ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg
18.多通道编码
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2
19.从flv提取mp3
ffmpeg -i source.flv -ab 128k dest.mp3
FFmpeg的基础知识相关推荐
- ffmpeg音视频基础知识
ffmpeg音视频基础知识 前言 一.图像的基础知识 二.视频编码基础知识 1.视频和图片之间的关系 2.为什么要编码? 3.什么是编码? 视频相关专业术语 提示:文章写完后,目录可以自动生成,如何生 ...
- ffmpeg调整缩放裁剪视频的基础知识(转)
源网址:ffmpeg调整缩放裁剪视频的基础知识 - yongfengnice - 博客园 1. resize and scale video 调整视频的大小和尺寸 1-1.调整视频大小(resize) ...
- FFmpeg 基础知识
第一.FFmpeg 简介和基础知识 1.1 FFmpeg 简介 FFmpeg的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward",FF ...
- 基于FFmpeg+SDL的视频播放器的制作-基础知识
基础知识 目录 视频播放器原理 封装格式(MP4.RMVB.TS.FLV.AVI) 视频编码数据(H.264.MPEG2.VC-1) 音频编码数据(AAC.MP3.AC-3) 视频像素数据(YUV42 ...
- C++实战手把手教您用ffmpeg和QT开发播放器--01音视频基础知识
笔记:https://blog.csdn.net/tainjau/article/category/9272757 音视频基础知识 封装.解码.重采样.像素格式 1.MPEG-4 MPEG-4标准将众 ...
- FFmpeg基础知识音频篇(二)
音频基础知识 声音的频率是周期的倒数,它表示的是声音在1秒钟内的周期数,单位是赫兹(Hz).千赫(kHz),即1000Hz,表示每秒振动1000次 声音有振幅,振幅的主观感觉是声音的大小.声音的振幅大 ...
- H.264基础知识及视频码流解析
H.264基础知识及视频码流解析 目录 H.264概述 H264相关概念 H264压缩方式 H264分层结构 H264码流结构 H264的NAL单元 H.264视频码流解析及代码实现 1. H.264 ...
- 最全音视频基础知识学习详解(含多个干货链接)
这里将了解到的和一些博客网站讲到的音视频基础相关的内容总结整理到了一起,方便系统的学习和回顾记录. 首先一个最简易的音视频图解,包括一下几个部分: 对于一个实时音视频应用共包括几个环节:采集.编码.前 ...
- Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
最新文章
- nginx alias php,Nginx Alias 无法解析PHP的解决办法
- cgi硬盘安装增强版怎么用_天津专业补光灯怎么用-安装
- java calendar_Java Calendar internalGet()方法与示例
- Java的Servlet、Filter、Interceptor、Listener
- iSCSI 2-环境搭建二
- OPTEE之安全存储详解
- USACO-Section1.3 Milking Cows (区间问题)
- su root 后还是不能使用useradd ,useradd 等命令
- poj3579 Median
- WEB前端-CSS精灵技术
- 嵌入式Linux开发笔记(韦东山2)
- 万能地图下载器下载与安装教程
- 有台服务可以干哪些好玩的事
- Arduino UNO u8glib显示中文-亲测可用
- python程序设计,猜数游戏编程实践课程实验
- MySQL数据库基础备份-mysqldump备份
- 华东师大在职计算机分数线,报考华东师范大学在职研究生分数线是多少呢?
- Hyperspectral Band Selection by Multitask Sparsity Puisuit
- 实验一 网络对抗技术
- 和数软件:区块链带来的“革命”
热门文章
- MATLAB连接USRP实现数据采集
- 普林斯顿计算机科学怎么样,普林斯顿大学计算机科学世界排名2019年最新排名第8(THE世界排名)...
- waterfilling之二
- NewStarCTF 公开赛赛道 第二周学习记录
- Android与Linux的区别
- 高中计算机学业水平考是c合格了吗,高中会考多少分才算合格
- 播放录音(系统) AVAudioSessionPortOverrideSpeaker 和 AVAudioSessionCategoryOptionDefaultToSpeaker区别
- 李嘉诚给年青人提出了53条人生忠告
- 再见,世界首富!再见,马云!
- 联想p720装系统_“多达112个框”:Lenovo 联想 推出 ThinkStation P920/P720系列 工作站...