`

使用FFMPEG类库分离出多媒体文件中的音频码流

 
阅读更多

在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的音频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。

经试验,在分离MP3码流的时候,直接存储AVPacket即可。

在分离AAC码流的时候,直接存储AVPacket后的文件可能是不能播放的。

如果视音频复用格式是TS(MPEG2 Transport Stream),直接存储后的文件是可以播放的。

复用格式是FLV,MP4等则不行。

因为FLV,MP4这些属于“特殊容器”。经过仔细对比后发现,调用av_read_frame()后得到的AVPacket里面的内容是AAC纯数据,就是那种不包含ADTS文件头的AAC数据。因此如果想要得到可以播放的AAC文件,需要在每个AVPacket前面加上7字节ADTS文件头。具体的ADTS文件头的格式我还没有仔细研究,留在今后有时间在做研究了。

分享到:
评论

相关推荐

    VC中使用ffmpeg类库,可用

    很多播放器都使用了ffmpeg这个类库来编解码 使用LIB和DLL实现ffmpeg的相关功能函数

    Android平台的FFmpeg类库

    要在Android应用中使用FFmpeg库,需要在项目的build.gradle文件中配置NDK路径,并添加依赖项。然后,通过Java或Kotlin的JNI接口调用原生库中的函数,实现音视频处理功能。 6. **示例应用**: 使用FFmpeg库的常见...

    找了很久的FFMPEG的类库

    FFmpeg是一个开源项目,它包含了用于处理多媒体数据的软件库,包括音频和视频的编码、解码、转换、流媒体等功能。这个“GebVideoFFMPEG-master”压缩包很可能包含了一个基于FFmpeg的视频处理项目的源代码。下面将...

    代码例子:如何用FFmpeg读取内存的PS/TS流,分离出视频和音频

    本教程将详细解释如何使用FFmpeg读取内存中的PS(Program Stream)/TS(Transport Stream)流,并从中分离出视频和音频。 首先,了解PS和TS流的基本概念。PS主要用于DVD存储,是一种连续的数据流,包含了一个或多个...

    操作多媒体的java包类库FFmpeg

    在Java中使用FFmpeg,开发者通常需要引入像`ffmpeg-1.0.2.jar`这样的库文件,然后通过调用对应的API来执行FFmpeg的功能。这些API会封装FFmpeg的命令行操作,使得在Java环境中调用更为方便和安全。例如,你可以创建一...

    ffmpeg 提取MP4视频中的音频mp3

    总之,FFmpeg是处理多媒体文件的强大工具,无论是在个人项目还是专业开发中,它都能提供灵活且高效的解决方案。通过掌握FFmpeg的基本命令和调用方式,你可以轻松地从MP4视频中提取音频并转换为MP3,同时还可以利用其...

    VS2019编译的32位最新版ffmpeg类库文件

    编译好的ffmpeg类库文件,32位版本,输出版本号为 ffmpeg version N-99305-gbc0e776 Copyright (c) 2000-2020 the FFmpeg developers built with 用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.27.29112 版 包含...

    视频和音频使用ffmpeg进行合并

    在本文中,我们将深入探讨如何使用FFmpeg将视频和音频进行合并,以便创建一个完整的多媒体文件。 首先,理解FFmpeg的基本用法至关重要。FFmpeg支持命令行界面,通过输入特定的参数和选项,你可以对多媒体文件执行...

    C#+FFmpeg实现RTSP流媒体播放器

    在本文中,我们将深入探讨如何使用C#编程语言结合FFmpeg库来实现一个RTSP(Real Time Streaming Protocol)流媒体播放器。RTSP是一种用于控制实时流传输的应用层协议,常用于在线视频直播和监控系统。C#是Microsoft...

    ps流解析器,解析本地ps文件为 es文件,可分离出音频和视频

    综上所述,"ps流解析器,解析本地ps文件为es文件,可分离出音频和视频"这个工具是多媒体处理领域的一个重要组成部分,它能够帮助我们高效地处理和分发多媒体内容,特别是在需要对视频和音频进行独立操作或者适应不同...

    Android端FFmpeg类库和头文件

    这是在linux环境下编译好的FFmpeg类库和头文件,适用于Android的音视频开发。 在编译过程中,NDK和FFmpeg的版本需要对应起来,否则编译过程中可能失败。这里编译过程中采用的版本为`android-ndk-r15c-linux-x86_64....

    最简单的基于FFMPEG的音频编码器

    因此特地分离出了一个简单音频编码器供学习之用。 该图像编码器实现了音频PCM采样数据编码为AAC码流。 尽管该音频编码器的代码十分简单,但是几乎包含了使用FFMPEG编码一个音频所有必备的API。十分适合FFmpeg的...

    利用ffmpeg将RTSP传输的h264原始码流保存到文件中

    FFmpeg是一款强大的开源多媒体处理工具,能够处理多种格式的音频和视频,包括从RTSP流中提取和保存h264码流。下面将详细介绍如何利用FFmpeg完成这个任务。 首先,我们需要理解RTSP(Real-Time Streaming Protocol)...

    使用FFmpeg截获h264裸码流

    ### 使用FFmpeg截取H.264裸码流详解 #### 一、引言 在多媒体处理领域,FFmpeg是一款极为强大的工具包,能够帮助开发者实现音视频编解码、转码、录制、流媒体传输等多种功能。其中,从RTP流中截取H.264裸码流是一项...

    c#基于FFMPEG的视频转码(视频转音频)

    当进行视频转音频操作时,FFMPEG首先读取视频文件中的音频流,然后使用合适的解码器解码音频数据,最后用编码器将解码后的音频数据编码为目标音频格式,如MP3、AAC或WAV。 C#结合FFMPEG: C#本身并不直接支持FFMPEG...

    解ts文件包含多路视频流和音频流

    在这个项目中,Demuxer负责从TS文件中分离出不同的视频和音频流,而Muxer则可能用于重新组合这些流,以实现特定的混合效果。 4. **MixVideo(混屏)类**: 混屏是指将多路视频流合并到一个画面中,这通常涉及到视频...

    使用ffmpeg.exe获取文件属性信息,视频音频时长

    使用ffmpeg.exe获取文件属性信息,ffmpeg是java开发的用于多媒体文件编辑的命令行工具,有多个版本,功能比较强大,C#中可以在进程外异步调用这个工具 using (System.Diagnostics.Process pro = new System....

    FFmpeg提取视音频文件

    2、对一个视频文件,提取基本信息(例如,封装格式,码流,视频编码方式,音频编码方式,分辨率,帧率,时长等等),并输出为txt文档。结果与MediaInfo的信息对比,并截图; 3、对该视频文件,提取视频信息,保存为...

    利用ffmpeg将H264裸流文件封装为MP4文件并保存

    在IT行业中,多媒体处理是一个重要的...通过熟悉FFmpeg的命令行语法和功能,你可以轻松实现各种多媒体文件的转换和处理。在压缩包"ffmpeg-h264ToMp4"中,可能包含了示例代码或教程,帮助你更好地理解和实践这个过程。

Global site tag (gtag.js) - Google Analytics