FFmpeg介绍

作者: 湘北南 | 来源:发表于2017-03-29 11:37 被阅读251次

    概述

    FFmpeg是一个开源的音视频解析库,包括如下类库:

    libavutil: 简单编程的类库,会提供一些方法、数据结构以及核心的多媒体处理工具。

    libavcodec: 音视频的编解码。

    libavformat: FFmpeg支持的封装格式。

    libavdevice: 定义了输入/输出设备,用来承载通用的软件框架输入/输出的多媒体。

    libavfilter: FFmpeg支持的滤镜。

    libswscale: 支持图片的高清缩放、颜色像素的转换。

    libswresample: 支持音频的高质量采样、重写和样本格式转换。

    环境配置

    Mac下面ffmpeg的安装很简单,下面一条指令就行:

    brew install ffmpeg 
    

    安转完成后,我们可以进行简单的测试,合成两个mp3的音频文件,指令如下:

    ffmpeg -i first.mp3 -i second.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 third.mp3
    

    指令集

    1. 分离视频、音频流

    ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流
    ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流
    

    2. 调低或者调高音量

    ffmpeg -i skycity.wav -vol 128 output.wav    //音量调低到原来的128/512 = 1/2
    ffmpeg -i skycity.wav -vol 512 output.wav    //音量调高到原来的512/256 = 2
    

    3. 截取音频文件一段

    //-ss:表示从某个时刻开始, -to:到某个时刻结束,-t:音频从某个时刻开始的时长。
    //截取00:00:12到00:00:30时间段的音频
    ffmpeg -i skycity.wav -ss 00:00:12 -to 00:00:30 -c copy skycity_crop.wav
    //从00:00:12开始,截取10s长的音频
    ffmpeg -i skycity.wav -ss 00:00:12 -t 00:00:10  -c copy skycity_crop.wav
    

    查看JNI崩溃信息

    1. 控制台输出崩溃信息

    adb logcat | \android-ndk-r13b\ndk-stack -sym \libs\armeabi
    

    2. 通过分析log日志

    1)运行应用出现崩溃后,adb logcat -d > log.txt(将日志导出到文档)
    
    2)ndk-stack -sym  libs\armeabi -dump log.txt
    

    小结

    上面只是对FFmpeg的类库、指令集的使用做了简单介绍,后面关于FFmpeg的指令使用会陆续更新。

    相关文章

      网友评论

        本文标题:FFmpeg介绍

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