FFmpeg402编译32位和64位动态库
FFmpeg 内容介绍 音视频解码和播放
音频数字化主要有压缩与非压缩(pcm)两种方式。
上一篇 FFmpeg 内容介绍 音视频解码和播放 介绍了FFmpeg进行解码的常见函数和,解码的过程。相关的函数介绍忘记了,可以参考上一篇。
思路:由FFmpeg进行解码,将解码后的数据再通过jni传到Java中的audioTrack对象进行播放
以上就是利用FFmpeg对音频文件进行解码以及播放的内容,如果有错误,欢迎大家指正出来
最近看了几个知乎live,感觉不错,需要反复听。因此想把这些live保存下来转成文本方便后面学习。
知乎live中的音频实际文件格式为mp4,我使用的是百度语音识别API,百度语音识别API只支持PCM,WAV以及AMR。因此想到用ffmpeg来做转换。
转换命令如下:
ffmpeg -i godmp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 godwav
上面两个地方需要注意:
-ar 16000:音频采样率设置为16k
-ac 1:单声道
百度语音识别API只支持单声道的音频文件。
前言
FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。
本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用 ffmpeg 提供的工具来处理音视频文件。
在讲解 FFMPEG 命令之前,我们先要介绍一些音视频格式的基要概念。
我们按使用目的可以将 FFMPEG 命令分成以下几类:
除了 FFMPEG 的基本信息查询命令外,其它命令都按下图所示的流程处理音视频
先是解复用获取到编码的数据包,然后将编码的数据包传送给解码器(除非为数据流选择了流拷贝,请参阅进一步描述)。 解码器产生未压缩的帧(原始视频/ PCM音频/ ),可以通过滤波进一步处理(见下一节)。 在过滤之后,帧被传递到编码器,编码器并输出编码的数据包。 最后,这些传递给复用器,将编码的数据包写入输出文件。
默认情况下,ffmpeg只包含输入文件中每种类型(视频,音频,字幕)的一个流,并将其添加到每个输出文件中。 它根据以下标准挑选每一个的“最佳”:对于视频,它是具有最高分辨率的流,对于音频,它是具有最多channel的流,对于字幕,是第一个字幕流。 在相同类型的几个流相等的情况下,选择具有最低索引的流。
您可以通过使用-vn / -an / -sn / -dn选项来禁用某些默认设置。 要进行全面的手动控制,请使用-map选项,该选项禁用刚描述的默认设置。
FFMPEG 可以使用下面的参数进行基本信息查询。例如,想查询一下现在使用的 FFMPEG 都支持哪些 filter,就可以用 ffmpeg -filters 来查询。详细参数说明如下:
查询编译器libfdk_aac的信息
FFMPEG 处理音视频时使用的命令格式与参数
ffmpeg 通过 -i 选项读取输任意数量的输入“文件”(可以是常规文件,管道,网络流,抓取设备等,并写入任意数量的输出“文件”。
原则上,每个输入/输出“文件”都可以包含任意数量的不同类型的视频流(视频/音频/字幕/附件/数据)。 流的数量和/或类型是由容器格式来限制。 选择从哪个输入进入到哪个输出将自动完成或使用 -map 选项。
要引用选项中的输入文件,您必须使用它们的索引(从0开始)。 例如。 第一个输入文件是0,第二个输入文件是1,等等。类似地,文件内的流被它们的索引引用。 例如。 2:3是指第三个输入文件中的第四个流
上面就是 FFMPEG 处理音视频的常用命令,下面是一些常用参数
首先通过下面的命令查看一下 mac 上都有哪些设备。
注意,桌面的输入对帧率没有要求,所以不用限制桌面的帧率。其实限制了也没用。
由于没有解码或编码,速度非常快,没有质量损失。 但是,由于许多因素,在某些情况下可能无法正常工作。 应用过滤器显然也是不可能的,因为过滤器处理未压缩的数据
上面的命令表式的是音频、视频都直接 copy,只是将 mp4 的封装格式转成了flv。
在编码之前,ffmpeg可以使用libavfilter库中的过滤器处理原始音频和视频帧。 几个链式过滤器形成一个过滤器图形。 ffmpeg区分两种类型的过滤器图形:简单和复杂。
请注意,某些滤镜会更改帧属性,但不会改变帧内容。 例如。 上例中的fps过滤器会改变帧数,但不会触及帧内容。 另一个例子是setpts过滤器。
复杂的过滤器图使用-filter_complex选项进行配置。 请注意,此选项是全局性的,因为复杂的过滤器图形本质上不能与单个流或文件明确关联。
-lavfi选项等同于-filter_complex。
一个复杂的过滤器图的一个简单的例子是覆盖过滤器,它有两个视频输入和一个视频输出,包含一个视频叠加在另一个上面。 它的音频对应是amix滤波器
添加文字水印
添加本地时间水印
>
我也是遇到这个问题,这是MCI的BUG,暂时应该无解,而且微软似乎没有打算修复这个问题,解决方法只能改用别的播放内核。MCI只有在获取可变码率的音频文件的长度时才会出现不准确的情况。能够过观察发现,MCI识别的长度误差满足下面的关系:MCI识别的长度/实际长度≈比特率/128。
以上就是关于FFmpeg进行音频的解码和播放全部的内容,包括:FFmpeg进行音频的解码和播放、用ffmpeg提取知乎live中的音频数据、ffmpeg 命令大全等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)