
FFmpeg
文章平均质量分 85
普通网友
这个作者很懒,什么都没留下…
展开
-
FFmpeg + SoundTouch实现音频的变调变速
本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件。 主要有以下内容:实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息将解码后的音频保存为WAV文件SoundTouch的使用指南1.从视频文件中提取音频保存为WAV文件本小节实现从视频文件中提取音频,解码并保存为WAV文件。 在使用FFmpeg解码时,一般的流程是:原创 2016-10-27 10:58:22 · 3897 阅读 · 0 评论 -
FFmpeg学习4:音频格式转换
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式的,所以通过FFmpeg解码出来的数据不能直接发送到SDL进行播放,需要进行一个格式转换。通过网上一些资料,也能够正确的播放音频了,但是对具体的音频转换过程不是很了解,这里就对FFmpeg的对音频的存储原创 2016-09-07 23:20:16 · 8350 阅读 · 2 评论 -
FFmpeg学习6:视音频同步
在上一篇文章中,视频和音频是各自独立播放的,并不同步。本文主要描述了如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放的。主要有以下几个方面的内容 * 视音频同步的简单介绍 * DTS 和 PTS * 计算视频中Frame的显示时间 * 获取Audio clock(audio的播放时长) * 将视频同步到音频上,实现视音频同步播放视音频同步简单介绍一般来说,视频同步指的原创 2016-09-23 16:06:46 · 1229 阅读 · 0 评论 -
FFmpeg学习5:多线程播放视音频
在前面的学习中,视频和音频的播放是分开进行的。这主要是为了学习的方便,经过一段时间的学习,对FFmpeg的也有了一定的了解,本文就介绍了 如何使用多线程同时播放音频和视频(未实现同步),并对前面的学习的代码进行了重构,便于后面的扩展。 本文主要有以下几个方面的内容: * 多线程播放视音频的整体流程 * 多线程队列 * 音频播放 * 视频播放 * 总结以及后续的计划1. 整体流程FFmp原创 2016-09-19 23:53:27 · 1402 阅读 · 0 评论 -
FFmpeg数据结构:AVPacket解析
本文主要从以下几个方面对AVPacket做解析: * AVPacket在FFmpeg中的作用 * 字段说明 * AVPacket中的内存管理 * AVPacket相关函数的说明 * 结合AVPacket队列说明下AVPacket在传递过程中数据缓存的管理查了一些资料,发现FFmpeg的版本更新还是挺快,而且有很多API也有改动,本文使用的FFmpeg的最新版本3.1。AVPacket简介A原创 2016-08-23 22:22:48 · 2567 阅读 · 0 评论 -
FFmpeg学习3:播放音频
参考dranger tutorial,本文将介绍如何使用FFmpeg解码音频数据,并使用SDL将解码后的数据输出。 本文主要包含以下几方面的内容: * 关于播放音频的需要的一些基础知识介绍 * 使用SDL2播放音频 * 数据队列 * 音频格式的转换 dranger tutorial确实入门FFmpeg比较好的教程,虽然作者在2015年的时候根据新版本的FFmpeg更新了,原创 2016-08-23 22:21:32 · 2635 阅读 · 1 评论 -
FFmpeg学习2:解码数据结构及函数总结
在上一篇文章中,对FFmpeg的视频解码过程做了一个总结。由于才接触FFmpeg,还是挺陌生的,这里就解码过程再做一个总结。 本文的总结分为以下两个部分:数据读取,主要关注在解码过程中所用到的FFmpeg中的结构体。解码过程中所调用的函数在学习的过程主要参考的是dranger tutorial,所以跟着教程在本文的最后使用SDL2.0将解码后的数据输出到屏幕上。数据的读取一个多媒体文件包含有原创 2016-08-23 22:20:55 · 1018 阅读 · 0 评论 -
FFmpeg学习1:视频解码
在视频解码前,先了解以下几个基本的概念: * 编解码器(CODEC):能够进行视频和音频压缩(CO)与解压缩(DEC),是视频编解码的核心部分。 * 容器/多媒体文件(Container/File):没有了解视频的编解码之前,总是错误的认为平常下载的电影的文件的后缀(avi,mkv,rmvb等)就是视频的编码方式。事实上,刚才提到的几种文件的后缀 并不是视频的编码方式,只是其封装的方式。一个视原创 2016-08-23 22:19:58 · 1304 阅读 · 0 评论 -
Visual studio 通用开发环境配置:SDL,FFMPEG为例
引言每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 1. 下载库文件,这里假定是已经预先编译完成的。 2. 配置库文件的包含目录(include)和库目录(lib) 3. 配置库文件的动态链接库(dll),这一步是很多人容易忽略的。上面配置好包含目录和库目录,只是开发环境配置完成了,没有配置好dll,在使用该库的程序运行时,会造成操作原创 2016-08-23 22:18:52 · 1591 阅读 · 0 评论 -
FFmpeg 中AVPacket的使用
AVPacket保存的是解码前的数据,也就是压缩后的数据。该结构本身不直接包含数据,其有一个指向数据域的指针,FFmpeg中很多的数据结构都使用这种方法来管理数据。AVPacket的使用通常离不开下面4个函数:使用av_packet_alloc来创建一个AVPacket的实例,但该函数并不会为数据分配空间,其指向数据域的指针为NULL。 通常调用av_read_frame将流中的数据读取到AVP原创 2016-12-06 18:27:08 · 10817 阅读 · 2 评论