zoukankan      html  css  js  c++  java
  • ffmpeg入门基础知识

    获取ffmpeg源代码

    如果你是在Windows环境下,则可以先装SVN的一个客户端TortoiseSVN(非常好用,强烈推荐),他安装完成后会集成在右键菜单中,点Checkout菜单,在弹出的界面中输入:svn://svn.mplayerhq.hu/ffmpeg/trunk,然后选择一个本地目录,按确定就可以把ffmpeg的源代码下载到你指定的目录中了。

    FFMPEG功能

    视频音频格式转换

     

    关于 frame的一些基本知识

    帧速率

    帧速率是每秒显示的图像数。标准影片(NTSC) 29.97 帧第秒 (fps)电影是每秒24 fps。欧洲标准是(PAL) 25 fps。如果你对你影片的尺寸

    不是太注重的话,保留默认的Current选项。这将会使你制作的影片的帧速率和源文件一致。不管怎样,如果你想降低带宽和CPU的占用,你可以选择一个低的帧

    速率。高的帧速率拥有高的品质的,但文件尺寸也更大。如果你选择的帧速率低于你的源文件的帧速率,一些帧将被删除。如果你选择的帧速率比你的源文件

    的话,已有的帧将被重复 (不推荐,因为增加了尺寸,但品质没有提高)。如果你选择的帧速率低于你的源文件的帧速率,使用一个你当前帧速率的简分数,比如

    1/2 1/3 等等。例如,你当前的帧速率是30 (29.97),使用15 10。但话说回来了,要最好的H.264品质,最好保留Current,当前)设置。

     

     

    关键帧

    很多编码软件使用frame differencing帧差异)来压缩图像。帧差异其实是判断从开始帧起哪些信息发生了变化 (称为key frame关键帧)

    关键帧包含了图像的所有信息。后来的帧仅包含改变了的信息。这取决于你用的编码软件,你可以指定你想要的关键帧如何出现。 如果你没有足够的关键帧,你的影片

    品质可能比较差,因为所有的帧从别的帧处产生。另一问题是,关键帧多了将导致影片更大,码率更高。 在一些编码软件中,当从一帧到下一帧有太多的内容发

    生改变时,那些增加的关键帧是自动插入的。 对于一般的用途,一个比较好的原则是5秒设一个关键帧。如果你正在建立一个RTSP流文件,并且关心传输网络

    的可靠度,你可能要12增加一个关键帧。要让编码软件来处理关键帧的间隔,选择 Automatic。针对H.264,我们推荐让编码软件来确定关键帧的间隔,为

    此你要选择Automatic以获得最佳品质。

    码率

    通常情况下,高码率就有高的品质,但文件也会很大。在大多数情况下,你要根据你观看的影片设置码率,例如,对于384K 连接速度,你要限制码率为

    350-360k每秒来留一些带宽给网络传输。如果文件是下载回来后播放,那码率可以很高(高码率,然而,网速比较慢的用户将要花比较长的时间来等待播放的开

    始)。另外,记住在对话框中设置码率时,你要留一些空间给音频

     

    针对 H.264, 这里有一些常用的码率方案:

       § 画面尺寸 1920 x 1080 (真正高清), 选择码率为7,000-8,000 Kbps。

       § 画面尺寸 1280 x 720 (通用高清), 选择码率为5,000-6,000 Kbps。

       § 画面尺寸 640 x 480 (标清), 选择码率为1,000-2,000 Kbps。

       § 画面尺寸 320 x 240 (网络传输), 选择码率为300-500 Kbps。

       § 画面尺寸176 x 144 (3G), 10-15 fps的内容选择码率为50-60 Kbps, 24-30 fps 的内容选择码率为150-200 Kbps。

     
    提及3G 格式, 一定要记住影片的码率会被你设置的其它的压缩选项所影响, 如同帧速率。因此高的帧速率,要有高的码率,如果你对码率要求不是特别严格并且你只想QuickTime带给你一个比较好的影片效果,你可以通过选择Automatic让H.264 编码器选择一个理想的码率。 编码器会按你选择的尺寸和你用品质滑动条选择的品质来选择合适的编码。
     
    优化:如果你已经输入了你自己的码率而不是自动选择码率,在Optimized for 下拉菜单中就有你选择的传送方式的相关选项。这些选项将告诉编码器可以高于
    或低于你选择的的码率多少。要得到最好的品质,选择Download。如果你想要借助CD 或 DVD来传送影片,在码率中选择 CD/DVD,CD/DVD需要被进行一些限制
    ,因此光驱要保持与观看者的电脑读与数据传送畅通 。如果你想借助RTSP流来传送影片,码率选择Streaming 将是最大限制。此选项仅能用于有限制的压缩软件,如H.264。

     

    为什么会有关键帧的存在?
    因为mpeg或者其他压缩方法(我只了解过mpeg),为了提高压缩比,就选择某一帧作为基帧,以它为参考,后面的帧只记录改变的信息,这是一个压缩的
    技巧,记录信息的改变是通过前后帧之间的图像相关性来完成的,分为(I,B,P)三种帧式,这三种帧式分别是三种不同的采用相关性的方式。这里的基帧就是关键帧了。
  • 相关阅读:
    怎样使用Secure CRT查看vcenter和esxi主机的日志文件(转)
    Linux下如何查看系统启动时间和运行时间
    Java使用线程并发库模拟弹夹装弹以及发射子弹的过程
    使用Java线程并发库实现两个线程交替打印的线程题
    Android Exception Type "share_dialog_title" is not translated in en, zh-rTW strings
    Java JDK1.5、1.6、1.7新特性整理
    Java 中long类型转换成为int类型时可能会出错的地方
    Java 将任意数组的任意两个位置的数据进行交换
    Java设置以及获取JavaBean私有属性进阶
    Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值
  • 原文地址:https://www.cnblogs.com/elesos/p/2850255.html
Copyright © 2011-2022 走看看