每天一点FFmpeg(1)

作者: maimingliang | 来源:发表于2017-07-12 11:03 被阅读587次

    FFmpeg命令系列

    在Mac下编译 FFmpeg ,并在Android中使用
    每天一点FFmpeg(1)
    每天一点FFmpeg(2)
    每天一点FFmpeg(3)
    每天一点FFmpeg(4)
    每天一点FFmpeg(5)
    每天一点FFmpeg(6)

    帧率,码率,文件大小的概念

    帧率

    单位时间内刷新图片的帧数(视频文件每秒的播放的帧数)。单位时间内刷新的图片越多,视频越流畅。
    根据视觉停留原理,肉眼看到连续的画面每一秒的帧数至少15帧。

    码率(比特率)

    数据传输时单位时间传送的字节数,单位时间码率越高,精度越高,越接近源文件的大小。如何用最低的码率达到最少的失真,一般我们用的单位是kbps即千位每秒

    文件大小

    帧率和码率是视频文件最重要的基本特征,它们的设置决定的视频的质量。
    计算文件的大小:(视频码率+音频码率)* 时长 / 8 。单位K

    使用FFmpeg改变视频文件的帧率,码率,文件大小

    改变帧率的命令:

    ffmpeg -y -i input -r fps output

    参数说明:
    -y:覆盖输出文件,即输入文件input已经存在,不经提示就覆盖掉
    -i:即输入视频文件(视频文件的全路径)
    -r:帧数

    源视频的详细信息:

    aa.png

    将源视频的帧率改为 24帧/秒

    ffmpeg -y -i demo-r.mp4 -r 24 demo-r-24.mp4

    执行结果

    002.png

    帧率的预定义值

    001

    例如设置帧率24fps,下面三种是同样的效果:
    ffmpeg -y -i demo-r.mp4 -r 24 demo-r-24.mp4
    ffmpeg -y -i demo-r.mp4 -r 24/1 demo-r-24.mp4
    ffmpeg -y -i demo-r.mp4 -r flim demo-r-24.mp4

    码率

    设置码率的选项是-b
    码率分为视频的码率 -b:v,音频的码率-b:a,单位kbps,

    设置视频码率1500,音频码率48
    ffmpeg -y -i demo-b.mp4 -b:v 1500K -b:a 48K demo-bv1500-ba-48.mp4

    执行结果:

    003.png

    不同分辨率下视频推荐的码率

    | 分辨率 | 码率 |
    | -------- |: -----: |
    | 360p | 400 |
    | 480p | 600 |
    | 540p | 700 |
    | 720p | 1000 |
    | 1080p | 1500 |

    不同acc profile下音频推荐的码率

    | profile | 单声道 | 双声道 |
    | -------- |: -----: |: -----: |
    | PROFILE_AAC_LOW | 48 | 96 |
    | PROFILE_AAC_HE | 32 | 64 |
    | PROFILE_AAC_HE_V2 |-- | 48 |

    文件大小

    控制文件输出大小的参数选项是-fs(file size)

    例如控制输出文件大小为500K,单位可 KMG
    ffmpeg -y -i demo.mp4 -fs 500K demo-fs-500K.mp4

    源视频大小

    004.png

    控制输出文件大小

    005.png

    综合使用

    例如,输出帧率为 15fps,视频码率1500kbps,音频码率48kbps。
    ffmpeg -y -i demo.mp4 -r 15 -b:v 1500K -b:a 48K res.mp4

    END.

    相关文章

      网友评论

        本文标题:每天一点FFmpeg(1)

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