背景知识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 命令可以查看 流的 音频和视频信息 非常详细

ffmpeg基础的更多相关文章

  1. FFmpeg基础一

    来源:http://blog.csdn.net/chance_yin/article/details/10323441 一.研究数字多媒体,首先要了解几个基本术语(ffmpeg的相关文档几乎都是英文的 ...

  2. FFmpeg Basics学习笔记(1)ffmpeg基础

    1 FFmpeg的由来 FFmpeg缩写中,FF指的是Fast Forward,mpeg是 Moving Pictures Experts Group的缩写.官网:ffmpeg.org 编译好的可执行 ...

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

    声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚 ...

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

    H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseline Profile:基本画质.支持I/P 帧,只支持无交错(Progressive)和 ...

  5. ffmpeg基础与编译_在VS2008下调试output_example.c(详细步骤)

    注意:这个是编译Debug版本的.必要资源:FFMPEG SDK 3.2(已经编译好的,可以去http://www.bairuitech.com/html/ruanjianxiazai/ffmpeg/ ...

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

    声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚 ...

  7. ffmpeg基础使用

    https://www.jianshu.com/p/ddafe46827b7  

  8. 【转】FFmpeg 基本用法

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

  9. ffmpeg基本用法

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

随机推荐

  1. CentOS中的常用命令

    1. 网络 1.1 查看所有端口 netstat -ntlp 1.2 查看被打开的端口 netstat -anp 1.3 查看端口占用情况 lsof -i: 或 lsof -i tcp: 2. 硬盘 ...

  2. AJAX-创建XMLHttpRequest对象

    AJAX-创建XMLHttpRequest对象 1.XMLHttpRequest是AJAX的基础,所有现在浏览器都支持,用于在后台与服务器交换数据,也就意味着可以在不加载整个页面的情况下对整个页面进  ...

  3. MySql启动,提示:Plugin 'FEDERATED' is disabled....Cannot allocate memory for the buffer pool

    2016-05-27 09:25:01 31332 [Note] Plugin 'FEDERATED' is disabled. 2016-05-27 09:25:01 31332 [Note] In ...

  4. [LeetCode] 14. Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. public class ...

  5. Eclipse IDE for Java EE Developers 与 Eclipse Classic(Eclipse Standard)区别

    Eclipse下载官网:http://www.eclipse.org/downloads/ 版本: 1.Eclipse classic(Eclipse Standard):Eclipse的标准版; 2 ...

  6. SQL Server中可能为null的变量逻辑运算的时候要小心

    DECLARE @a int declare @b int IF(@a<>@b) print('@a<>@b') else print('@a=@b') ) print('b& ...

  7. localStorage、sessionStorage在无痕模式下被禁用

    在移动web开发中,经常会使用到localStorage去缓存一些数据,一般情况下,我们只需要按照下面的代码去使用就不会有 问题. if(window.localStorage){ localStor ...

  8. 数据结构与算法(1)支线任务2——Basic Calculator

    题目:https://leetcode.com/problems/basic-calculator/ Implement a basic calculator to evaluate a simple ...

  9. IOS 设置导航栏全局样式

    // 1.设置导航栏背景 UINavigationBar *bar = [UINavigationBar appearance]; [bar setBackgroundImage:[UIImage r ...

  10. NSURLConnection使用

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...