ffprobe 的使用介绍

ffprobe 的使用介绍

本文主要介绍了ffprobe 基本信息查询,及码流信息探测两种使用方法. 并给出了实例.

****************************************
 甲. 基本信息查询, 可以不需要输入文件.
****************************************
 ffprobe -h
 ffrobe 版本为4.4, 一下子就1996 行输出。 太大了, 可以归结为几类.
 Main option:                主要选项
 AVFormatContext option:      选项以及子项
 AVCodecContext option:       选项以及子项

------------------------------------------------------------
 1. 主选项:
------------------------------------------------------------
 68个,还是分为三类,基础信息, format 相关, codec 相关.

 关于显示版本号有几个选项,如下: 一般不常用,-hide_banner 倒可以用用.
 输出格式可以指定, 可以试试xml,json等,例如: -of xml, 不指定为default
 -show_program_version
 -show_library_versions
 -show_versions
 -hide_banner            //关闭默认的版本显示

 -pix_fmts                //显示支持的像素格式
 -show_pixel_formats    //详细显示像素格式
 -colors                //显示颜色名称和16进制数据对应关系
 -sample_fmts            //显示支持的音频采样格式
 -layouts                //显示支持的声道布局

 -formats                //显示支持的封装格式
 -muxers                // 可以细分为解复用,复用及设备
 -demuxers
 -devices

 -codecs                //显示支持的编解码格式
 -encoders                //可细分为编码,解码
 -decoders

 -filters                //显示支持的过滤器

------------------------------------------------------------
 2 AVFormatContext 选项相关
------------------------------------------------------------
这些选项也只是显示了解码的选项, 这些选项先忽略.
我们只是为了显示一些信息.


*********************************************
乙. 码流信息探测, 需要跟码流参数(例如文件名)
*********************************************

a. 如何使用ffprobe显示关于容器,流、包、帧的元数据信息?

1. 获取容器格式信息:-show_format
2. 获取每个流的信息:-show_streams
3. 获取每个数据包的信息:-show_packets
4. 获取帧的信息:-show_frames
还有其它一些show 选项,可用ffprobe -h |grep show 过滤查看
输出格式可以选择: default,xml,json,flag,csv,ini 各有各的用途,为了输出多样化.由-of 指定
使用方法很简单, 例如:
$ ffprobe -show_format test1.ts -of xml

b. 进一步提取其中部分信息. -show_entries(显示条目关键字)

提取流,包,帧的信息
提取信息可以用 -show_entries 后跟参数stream, packet,format等, 也可以跟frame,由于要解包,会比较慢.
进一步限定为继续加=参数限定. (key=value 方式)
例如:
流中的bit_rate, 像素格式等
ffprobe -v error  -hide_banner -show_entries stream=bit_rate -of default=noprint_wrappers=1 test1.ts
包中的pts 等
ffprobe -v error  -hide_banner -select_streams v -show_entries packet=pts_time -of ini test1.ts

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 环境中使用 FFmpeg,可以通过将 FFmpeg 库编译进你的应用程序或者使用预编译的库来实现。下面介绍两种方法: 1. 编译 FFmpeg 库 首先,你需要下载 FFmpeg 源代码,并在 Android NDK 环境中编译生成 FFmpeg 库。具体步骤如下: 1.1 下载 FFmpeg 源代码 你可以从 FFmpeg 官网下载最新的源代码,下载地址为:https://www.ffmpeg.org/download.html。 1.2 配置交叉编译环境 在下载 FFmpeg 源代码后,你需要配置交叉编译环境,以便生成适用于 Android 平台的库。具体步骤如下: 1.2.1 安装 Android NDK 首先,你需要下载并安装 Android NDK,下载地址为:https://developer.android.google.cn/ndk/downloads。 1.2.2 配置环境变量 将 Android NDK 目录添加到环境变量中,以便在终端中使用 NDK 工具链。假设你将 Android NDK 安装在 /opt/android-ndk-r21d 目录下,可以通过以下命令将 NDK 目录添加到环境变量中: ``` export PATH=$PATH:/opt/android-ndk-r21d ``` 1.3 编译 FFmpeg 库 在配置好交叉编译环境后,你可以使用以下命令编译 FFmpeg 库: ``` ./configure \ --enable-cross-compile \ --target-os=android \ --arch=arm \ --cpu=armv7-a \ --sysroot=$NDK/platforms/android-21/arch-arm \ --cc=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang \ --cross-prefix=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi- \ --prefix=./ffmpeg_build \ --extra-cflags="-fpic -march=armv7-a -mfpu=neon -mfloat-abi=softfp" \ --extra-ldflags="-shared" \ --disable-static \ --enable-shared \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-symver \ --disable-x86asm ``` 其中,--arch 和 --cpu 参数根据你的设备架构进行调整。如果你的设备是 arm64-v8a 架构,则将参数修改为: ``` --arch=aarch64 \ --cpu=armv8-a \ --sysroot=$NDK/platforms/android-21/arch-arm64 \ --cc=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang \ --cross-prefix=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android- ``` 编译完成后,你可以将生成的库文件复制到你的 Android 项目中,并在代码中调用 FFmpeg 库。 2. 使用预编译的库 如果你不想编译 FFmpeg 库,你可以使用预编译的库文件来实现。你可以在以下链接中下载适用于 Android 平台的 FFmpeg 预编译库:https://github.com/WritingMinds/ffmpeg-android/releases 下载完成后,你可以将库文件复制到你的 Android 项目中,并在代码中调用 FFmpeg 库。 无论你使用哪种方法,你都需要在你的 Android 项目中添加以下依赖项: ``` implementation 'com.writingminds:FFmpegAndroid:0.3.2' ``` 这是一个用于在 Android 平台上使用 FFmpeg 的第三方库,可以简化调用 FFmpeg 库的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值