ffmpeg基础

背景知识ffmpeg是一款领先的流媒体处理框架,支持编码,解码,转码等功能并可以在linux, Mac OS X, Microsoft Windows编译运行,用它做播放器的有:ffplay,射手播放器,暴风影音,QQ影音,用它做转码的有:格式工厂,总之:ffmpeg功能十分强大。
视音频编码技术基础
>>>生活中的视音频技术
我们日常生活中看到的视频有不同后缀如:avi,rmvb,mp4,flv,mkv等等,这些后缀的格式就是视频的封装格式(把音频和视频打包成一个文件的规范)文件的后缀看不出具体视频的视音频编码标准,我们引入MediaInfo工具:
可以看出high_2.mp4采用的是MPEG-4(mpeg4是一个“标准合集”(ISO/IEC 14496),包含了视频编码、音频编码、封装格式等一系列标准)标准的封装格式为mp4,采用了h.264视频的压缩编码标准,这个工具可以非常详细查看视频文件的各种你想要的信息比如分辨率码率帧率等。比特率bit/b 二进制中最小单位,要么0要么1,单位是:“位每秒”也叫bps,期中b就是Byte,就是比特也就是字节1个字节(1B)在计算机中占8位 1Byte=8bits,1K字节=1024B*8bpsb:比特位(bit)码率指单位时间内使用的数据流量也叫码率,分辨率相同,码率越大也就越清晰(标清,高清)例:2864Kbps(每秒计算机走了2864*1024*8这么多个比特位,也就是每秒需要2864k比特)帧率
(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。此词多用于影视制作和电子游戏,所以fps越高画面刷新频率更快,也就感觉更流畅,我们在游戏中fps很低就会很卡这就是期中为什么卡的原因。
>>>直播中的性能指标基础
延迟:稳定网络下 发送和接受的时间差影响延迟的因素:1,  转发环节越多延迟越大2,  物理上的距离 (偏远山区等考虑光钎的传输)3,  由于 RTMP/HLS 是基于 TCP 之上的应用层协议,TCP 三次握手,四次挥手,慢启动过程中的每一次往返来回,都会加上一次往返耗时 ( RTT ),这些交互过程都会增加延迟。卡顿率:单位时间内播放的卡顿次数为卡顿率影响卡顿的因素:1,  造成卡顿的因素有可能是推流端发送数据中断,2,  也有可能是公网传输拥塞或网络抖动异常3,  也有可能是终端设备的解码性能太差卡顿频次越少或没有,则说明用户体验越好。首屏耗时:指第一次点击播放后,肉眼看到画面所等待的时间。技术上指播放器解码第一帧渲染显示画面所花的耗时。通常说的 “秒开”,指点击播放后,一秒内即可看到播放画面。首屏打开越快,说明用户体验越好。
Ffmpeg基本命令
-L license
-h 帮助-f fmt 强迫采用格式fmt-i filename 输入文件-y 覆盖输出文件-b:v 设置码率-s 设置分辨率-re 按着帧率发送,-c 设置编码器 当为 copy:指复制编码流-c:v  libx264  指定编码格式为h264-acodec aac(音频编码用AAC)-ac 2(声道数1或2)-ar 24000(声音的采样频率,好像PSP只能支持24000Hz)-ab 128(音频数据流量,一般选择32、64、96、128)-vol 200(200%的音量,自己改)
示例推流地址:rtmp://ps0.xxx.com/xxx  看流地址:http://pl0.xxx.com/xxx/xxx.flv                     rtmp://ps0.xxx.com/xxx1. ffmpeg推流命令ffmpeg -re -i localFile.mp4 -c copy -f flv 推流的过程中会不断打印 视频流相关的信息
2. 看流命令ffplay http://pl0.xxx.com/xxx/xxx.flvffplay 是ffmpeg 内嵌的一个播放器 当然你也可以用vlc输入这个流地址来观看
3. -c:v 命令用来转码ffmpeg转码命令ffmpeg  -i  D:/test.mov -c:v libx264 -strict -2 D:/test.mp4 (目前我们最好用mp4格式上传所以我们有时候需要最视频转码 ,把D盘下.mov的视频文件 转成 h264编码格式的test.mp4)
4. -b:v 命令用来修改码率ffmpeg 修改视频码率ffmpeg -i test.mp4 -b:v 1500k testk.mp4  (修改test.mp4 的码率为 1500k 新文件为testk.mp4)
5. -s 用来修改分辨率 ffmpeg 修改视频分辨率 :ffmpeg -i D:\test\test.mp4 -s 800*600 D:\test\testf.mp4 (修改视频文件test.mp4 分辨率 1280*720 修改为:800*600 新文件名为testf.mp4)6. -r 用来修改帧率 ffmpeg 修改视频帧率:ffmpeg --i D:\test\test.mp4--r 25 output D:\test\testr.mp4 (修改视频文件test.mp4 的帧率为 25 新文件名为 testr.mp4)
7. ffmprobe 命令可以查看 流的 音频和视频信息 非常详细

时间: 2024-10-03 14:45:44

ffmpeg基础的相关文章

FFmpeg基础一

来源:http://blog.csdn.net/chance_yin/article/details/10323441 一.研究数字多媒体,首先要了解几个基本术语(ffmpeg的相关文档几乎都是英文的,不弄懂几个基本术语看文档还是比较吃力的) 1.容器/文件 (Container/file) ,既多媒体源文件 2.媒体流(Stream):与时间相关的一段连续数据.既某一时刻对应某个数据,这样的多个连续数据组在一起就成了媒体流. 3.数据帧/数据包(Frame/Packet):一个媒体流由大量的数

FFmpeg基础库编程开发学习笔记——视频常见格式

声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚開始接触学习,如有不正确之处还请指出. 视频格式能够分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类.虽然后者在播放的稳定性和播放画面质量上可能没有前者优秀.但网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点播.网络演示.远程教育.网络视频广告等等互联网信息服务领域.

FFmpeg基础知识之————H264编码profile & level控制

H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseline Profile:基本画质.支持I/P 帧,只支持无交错(Progressive)和CAVLC: 2.Extended profile:进阶画质.支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC:(用的少) 3.Main profile:主流画质.提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced), 也支持CAV

FFMPEG基础库编程开发学习笔记——FFMPEG概述

声明一下:这些关于ffmpeg的文章只是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其他文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚开始接触学习,如有不对之处还请指出. 1.FFMPEG简介 Open-source multimedia library,遵从GPL/LGPL协议,ffmpeg只是一个商标,它的所有权属于ffmpeg org.由Fabrice Bellard(法国著名程序员 Born in1972)于2000年发起创

FFmpeg基础库编程开发学习笔记——音频常见格式及字幕格式

声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚開始接触学习,如有不正确之处还请指出. 音频格式是指要在计算机内播放或是处理音频文件,也就是要对声音文件进行数.模转换,这个过程相同由採样和量化构成.人耳所能听到的声音.最低的频率是从20HZ起一直到最高频率20KHZ.20KHZ以上人耳是听不到的,因此音频文件格式的最大带宽是20KHz,故而採样速

ffmpeg基本用法

FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种格式? 5.如何放大和缩小视频? 6.如何旋转,翻转,填充,裁剪,模糊,锐化视频? 7.如何给视频加logo,删除logo? 8.如何给视频加文本,动态文本? 9.如何处理图片? 10.如何录像,添加动态logo,截图,马赛克视频? 第一部分 基础 术语 容器(Container) 容器就是一种文件

转:ffmpeg基本用法

FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种格式? 5.如何放大和缩小视频? 6.如何旋转,翻转,填充,裁剪,模糊,锐化视频? 7.如何给视频加logo,删除logo? 8.如何给视频加文本,动态文本? 9.如何处理图片? 10.如何录像,添加动态logo,截图,马赛克视频? 第一部分 基础 术语 容器(Container) 容器就是一种文件

黄聪:ffmpeg基本用法(转)

FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种格式? 5.如何放大和缩小视频? 6.如何旋转,翻转,填充,裁剪,模糊,锐化视频? 7.如何给视频加logo,删除logo? 8.如何给视频加文本,动态文本? 9.如何处理图片? 10.如何录像,添加动态logo,截图,马赛克视频? 第一部分 基础 术语 容器(Container) 容器就是一种文件

ffmpeg强化一:编解码过程,基本用法

1  术语: 什么是影片?其实就是一组(很多张)图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是影片.那电影的实质就是N多张图片的集合.那 每张图片和帧又有什么关系呢?事实上,如果一部影片里面的图片,我们原封不动的全部存起来,空间会很大很大很大,但是如果通过一定的算法(这里不讲相关算 法),把每一张图片压缩(编码_encode)一下,变成 帧.再把帧连起来变成流,再把不同的流放到某个容器里面,这就是我们平常看见的电影文件了,文件 碟中谍4.H264.ACC.mkv,他为什么要