FFmpeg/FFplay
文章平均质量分 86
xiaojun11-
勤能补拙,奋发ing
展开
-
FFmpeg时间戳详解
转载自:https://cloud.tencent.com/developer/article/14095071. I帧/P帧/B帧I帧:I帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含一幅完整的图像信息,属于帧内编码图像,不含运动矢量,在解码时不需要参考其他帧图像。因此在I帧图像处可以切换频道,而不会导致图像丢失或无法解码。I帧图像用于阻止误差的累积和扩散。在闭合式GOP中,每个GOP的第一个帧一定是I帧,且当前GOP的数据不会参考前后GOP的数据。P帧:P帧(P转载 2020-10-29 11:03:34 · 984 阅读 · 0 评论 -
ffmpeg混音(将多个声音合成一个)命令
ffmpeg命令中可以使用filter amix实现这个功能。官方文档http://ffmpeg.org/ffmpeg-filters.html 6.8 amix Mixes multiple audio inputs into a single output.Note that this filter only supports float samples (th转载 2016-09-28 17:10:49 · 11078 阅读 · 0 评论 -
AVFilterPad and AVFilterInOut
This post was updated on Jul 31, 2013; 5:07am.Hi all, I am currently trying to figure out how to resolve the "output pad .... no source found" error from a modification of the ffmpeg audio filte转载 2016-10-26 19:11:24 · 1267 阅读 · 0 评论 -
av_seek_frame的调用
ffmpeg中当av_seek_frame的时候需要读文件的开始位置,调用方式ret = av_read_frame(pFormatCtx, packet);if (ret < 0){ ret = av_seek_frame(pFormatCtx, videoindex, pFormatCtx->streams[videoindex]->start_time, 0); //se原创 2016-10-18 09:53:24 · 5772 阅读 · 4 评论 -
FFmpeg数据结构:AVPacket解析
转载自:http://www.cnblogs.com/wangguchangqing/p/5790705.html 谢谢版主本文主要从以下几个方面对AVPacket做解析:AVPacket在FFmpeg中的作用字段说明AVPacket中的内存管理AVPacket相关函数的说明结合AVPacket队列说明下AVPacket在传递过程中数据缓存的管理查了一些资料转载 2016-11-17 10:54:53 · 7263 阅读 · 1 评论 -
FFmpeg学习6:视音频同步
转载自:http://www.cnblogs.com/wangguchangqing/p/5900426.html 谢谢版主在上一篇文章中,视频和音频是各自独立播放的,并不同步。本文主要描述了如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放的。主要有以下几个方面的内容视音频同步的简单介绍DTS 和 PTS计算视频中Frame的显示时间获取Au转载 2016-11-17 13:21:28 · 883 阅读 · 0 评论 -
ffmpeg x264编码打开编码器失败 返回-1
此时调用avcodec_open2() 返回 -1console打印错误:[libx264 @ 02ed6880] broken ffmpeg default settings detected[libx264 @ 02ed6880] use an encoding preset (e.g. -vpre medium)[libx264 @ 02ed6880] prese转载 2016-12-12 15:31:58 · 2914 阅读 · 0 评论 -
ffmpeg AVFrame 插入静音帧
[cpp] view plain copyint frame_size_out_encode = out_fmt_ctx->streams[out_stream->index]->codec->frame_size; if(!frame_size_out_encode) frame_size_out_encode = put_into_fifo-转载 2016-12-08 16:21:04 · 2514 阅读 · 0 评论 -
PCM数据格式
转载:https://my.oschina.net/u/589963/blog/167526 1. 8 Bit 单声道: 1. 8 Bit 单声道:采样1 采样2 数据1 数据2 2. 8 Bit 双声道采样1 采样2 声道1数据1 声道2数据1 声道1数据2 声道2数据2 1. 16 Bit 单声道:...转载 2016-12-08 18:35:58 · 1054 阅读 · 0 评论 -
filters实现设置音频的AV_SAMPLE_FMT_S16P
enum AVSampleFormat { AV_SAMPLE_FMT_NONE = -1, AV_SAMPLE_FMT_U8, /// AV_SAMPLE_FMT_S16, /// AV_SAMPLE_FMT_S32, /// AV_SAMPLE_FMT_FLT, ///转载 2016-09-28 17:43:14 · 2834 阅读 · 0 评论 -
ffmpeg.c函数结构简单分析(画图)
祭奠雷博!!!前一阵子研究转码的时候看了FFmpeg的源代码。由于ffmpeg.c的代码相对比较长,而且其中有相当一部分是AVFilter有关的代码(这一部分一直不太熟),因此之前学习FFmpeg的时候一直也没有好好看一下其源代码。最近正好看了看AVFilter的知识,顺便就看了下FFmpeg的源代码,在这里画图理一下它的结构。目前好多地方还没有弄明白,等到以后慢慢完善了。先说转载 2016-10-14 14:06:13 · 822 阅读 · 0 评论 -
ffmpeg AVFilter介绍
一. ffmpeg AVFilter介绍利用ffmpeg做图像的pixel format转换你还在用libswscale吗?嘿嘿,过时啦!ffmpeg中有了新东西:libavfilter.使用它,可以完全代替libswscale,并且可以自动完成一些复杂的转换操作呢.libavfilter啊,用了都说好!但就是太复杂...如果你仅仅是做图像的pixel format处理,用libsw转载 2016-09-26 13:49:03 · 1148 阅读 · 0 评论 -
ffmepg源码中的 -re
原来ffmpeg中的参数对应是这样的#define OFFSET(x) offsetof(OptionsContext, x)const OptionDef options[] = { /* main options */#include "cmdutils_common_opts.h" { "f", HAS_ARG | OPT_STRIN转载 2016-10-12 19:42:28 · 628 阅读 · 0 评论 -
基于ffmpeg的音频转码
首先引入音频帧的概念: 正常人听觉的频率范围大约在20Hz~20kHz之间。 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样频率,还...转载 2016-09-27 19:11:37 · 2313 阅读 · 0 评论 -
AvFilter实现转码音频
MP3-->AAC的时候,只能设置 static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,AVCodecContext *enc_ctx, const char *filter_spec){ char args[512]; int ret = 0; AVFilter *buffer...原创 2016-09-27 19:29:18 · 822 阅读 · 0 评论 -
ffmpeg的filter分析
原文网址(转载请注明出处): (http://blog.csdn.net/newchenxf/article/details/51364105)目录目录什么是ffmpeg filter如何使用ffmpeg filter1 将输入的1920x1080缩小到960x540输出2 为视频添加logo3 去掉视频的logo转载 2016-10-13 13:59:26 · 1324 阅读 · 0 评论 -
时间戳计算
1、av_rescale_q //多少多少的累加 ,time_base 是 1/25000,如果是25帧,每次就累加1000,如果按照帧率来也行//但是如果解码的话,需要按照这个,如果设置编码是没有关系的计算出来的时间戳packet_time = av_rescale_q(pFrame->pkt_dts, pFormatCtx->streams[videoindex]->time原创 2016-10-13 16:24:25 · 4071 阅读 · 0 评论 -
ffmpeg开发 av_init_packet()和av_new_packet()
说明几点:1. AVPacket中的buf, 是AVBufferBuf结构体,这个结构体是个单链表, 只有data和size两个元素, 分别指向的是AVPacket中的data和size[cpp] view plain copy print?void av_init_packet(AVPacket *pkt) {转载 2016-09-28 14:44:32 · 4503 阅读 · 0 评论 -
FFMPEG1.2 音频解码的过程
FFMPEG输出WAV的audio:ffmpeg -i ~/test_22m.audio.flv -acodec pcm_s16le -ar 8000 -ac 1 -f wav -y ~/test_22m.audio.8000.ffmpeg.wavFFMPEG输出WAV的audio:ffmpeg -i ~/test_22m.audio.flv -acodec pcm_s16le -ar 3转载 2016-10-14 14:01:04 · 1441 阅读 · 0 评论 -
利用ffmpeg的filter混音
转载自:http://blog.csdn.net/dancing_night/article/details/53080385 谢谢版主 概述 流程介绍 流程如下 线程之间数据走向如下 代码 下载地址 概述一个简单的混音demo,把文件a和文件b的音频混为一个音频流输出并存为文件,只处理每个文件的第一个音频流 注:源代码是网友Larry_...转载 2016-12-16 17:45:57 · 1261 阅读 · 0 评论 -
使用ffmpeg转码的MP4文件需要加载完了才能播放的解决办法
转载:http://blog.csdn.net/dancing_night/article/details/44407919 谢谢版主前一段时间做了一个ffmpeg转码MP4的项目,但是转出来的MP4部署在网站上需要把整个视频加载完成才能播放,到处找资料,最后找到解决方案记录于此备忘。FFMpeg转码由此得到的mp4文件中, meta信转载 2016-12-16 17:47:46 · 2861 阅读 · 0 评论 -
FFMPEG之AVRational TimeBase成员理解
自己的理解:time_base 含义是 时间 刻度, 类似于标尺 AVStream->AVCodecContex->time_base {1,100}packet的 pts 是 一连串递增的 时间点 0 4 8 12 16 。。。真实的显示时间是 pts * AVStream->AVCodecContex->time_base 换算成秒, 音视...转载 2018-03-26 17:37:55 · 5243 阅读 · 2 评论 -
FFmpeg Metadata
FFmpeg MetadataThis page documents all of the metadata keys that FFmpeg honors, depending on the format being encoded.Contents [hide] 1Basic Usage2QuickTime/MOV/MP4/M4A/et al.3ASF/WMV/WMA4AVI5FLV6Mat...转载 2018-04-09 14:26:03 · 1222 阅读 · 0 评论 -
ffmpeg里音频 API的 调用 以及 音频数据的排列(是否带p)
摘抄自:https://blog.csdn.net/zhuweigangzwg/article/details/51499123一:关于音频分片的问题 [cpp] view plain copyenum AVSampleFormat { AV_SAMPLE_FMT_NONE = -1, AV_SAMPLE_FMT_U8, ///&...转载 2018-03-27 10:12:42 · 470 阅读 · 0 评论 -
FFmpeg 中的一些参数意义(tbr, tbn, tbc)
一、系统打印命令解析在此命令执行过程中,我们可以看到如下数据:1、ffmpeg在运行过程中需要用到的lib库如下 libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 37.102 / 55. 37.102 libavformat 55. 19.103 / 55. 19.103 libavdevic...转载 2018-03-27 11:03:39 · 11967 阅读 · 1 评论 -
AAC帧格式及编码介绍
参考资料:AAC以adts格式封装的分析:http://wenku.baidu.com/view/45c755fd910ef12d2af9e74c.htmlaac编码介绍:http://wenku.baidu.com/view/0de48034f111f18583d05a65.htmlAAC音频压缩编码标准的ADTS与LATM的格式分析:http://wenku.baidu.com/v...转载 2014-08-26 06:49:54 · 957 阅读 · 0 评论 -
ffmpeg AV_SAMPLE_FMT_FLTP to AV_SAMPLE_FMT_S16
ffmpeg 2.0 音频解码出来的数据格式不符合Android音频格式 问题原因:ffmpeg2.0最新的解码出来的数据是 sample_fmts = AV_SAMPLE_FMT_FLTPandroid需要的音频格式:sample_fmts (AV_SAMPLE_FMT_S8, AV_SAMPLE_FMT_S16) 解决方法:1, 创建转换对象 void audio_...转载 2014-09-25 22:50:17 · 7117 阅读 · 1 评论 -
视频、音频打时间戳的方法
http://blog.csdn.net/wfqxx/article/details/54971381. 视频时间戳 pts = inc++ *(1000/fps); 其中inc是一个静态的,初始值为0,每次打完时间戳inc加1. 在ffmpeg,中的代码为 pkt.pts= m_nVideoTimeStamp++ * (m_VCtx->time_bas...转载 2015-03-11 11:00:07 · 770 阅读 · 0 评论 -
MP4中提取H.264码流
1.获取数据ffmpeg读取mp4中的H264数据,并不能直接得到NALU,文件中也没有储存0x00000001的分隔符。下面这张图为packet.data中的数据从图中可以发现,packet中的数据起始处没有分隔符(0x00000001), 也不是0x65、0x67、0x68、0x41等字节,所以可以肯定这不是标准的nalu。其实,前4个字0x000032ce表示的是nalu的长度...转载 2016-08-06 11:26:44 · 3522 阅读 · 0 评论 -
ffmpeg常用命令
1、列举设备ffmpeg -list_devices true -f dshow -i dummy2、最简单的抓屏:ffmpeg -f gdigrab -i desktop out.mpg 从屏幕的(10,20)点处开始,抓取640x480的屏幕,设定帧率为5:ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y ...原创 2016-09-29 14:36:41 · 6718 阅读 · 0 评论 -
ffmpeg多种码率控制方式的实现
感谢博主:http://blog.csdn.net/owen7500/article/details/51832035fmpeg是我们进行视频编解码常用的工具,而对于ffmpeg中编码时对码率的控制方式一直没找合适的教程,无意中在stackoverflow上发现了答案,在此进行总结备忘。视频编码器常用的码率控制方式包括abr(平均码率),crf(限制码率),cqp(固定质量),ffmpeg转载 2017-10-24 09:34:14 · 1258 阅读 · 0 评论 -
FFMPEG complex filter的流程
转载自:http://blog.csdn.net/win_lin/article/details/14003157 谢谢版主ffmpeg1.2的overlay必须是complex filter,调试这个命令:ffmpeg -re -i ~/test_22m.flv -i ~/logo.png -filter_complex 'overlay=10:10' -aco转载 2016-12-16 17:51:00 · 6395 阅读 · 0 评论 -
ffmpeg.exe移植到vs2010编译步奏
转码自:http://blog.csdn.net/dancing_night/article/details/45867461 谢谢版主1、概述跟ffmpeg源码有很多方式,但是用eclipse的时候,顺序老是乱跳,很不方便,于是想到把ffmpeg.exe移植到vs下,只移植了exe,库文件这些还是用mingw编译的,相当于一个调用ffmpeg的api的一个转码程序,只是转载 2016-12-16 18:17:37 · 691 阅读 · 0 评论 -
混音算法
转载:http://blog.csdn.net/dancing_night/article/details/53080819 Wav文件直接反映了一个声音在每个时刻的大小值,比如说以下一段波形: 我们按每人0.1秒取一点,得到的wav文件数值就是0,1,1,-1,0,1。因此,假如我们能把许多Wav文件的数据直接相加,你听到的就是所有的声音,这就是混音器的原理。 ...转载 2016-12-16 18:14:56 · 8095 阅读 · 0 评论 -
ffmpeg加入libass
1 libass编译libass使用的版本是0.13.2。libass下载地址:http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libass.html依赖库为FreeType-2.6.5,FriBidi-0.19.7,Fontconfig-2.12.1,下载地址分别为:http://www.linuxfromscra转载 2016-12-23 15:29:23 · 7004 阅读 · 2 评论 -
如何用drawtext在linux系统中开发实现中文字幕
最近在做ffmpeg的avfilter开发,从编译到,编码和运行,遇到了好多坑,这里总结一下:1,./configure中avfilter的那些坑1) 建议安装yasm,没这个drawtext中依赖的libfreetype会安装不上;# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz#转载 2016-12-23 15:30:22 · 2349 阅读 · 2 评论 -
linux 下 ffmpeg 库怎么才可以调试
我们configure时, 加入一下选项:--enable-debug=3 \ --disable-optimizations \ --disable-asm \ --disable-stripping \--enable-debug 就是gcc 中添加-g选项, 3是-g的级别--disable-optimiz转载 2016-12-30 17:03:36 · 505 阅读 · 0 评论 -
av_opt_set函数族详解
1、av_opt_set 是设置AVOptions的参数例如 AVFilter* filter_src_desk = avfilter_get_by_name("buffer");AVFilter* filter_src_cam = avfilter_get_by_name("buffer");AVFilter* filter_sink = avfilter_ge原创 2016-12-20 16:46:26 · 10092 阅读 · 0 评论 -
fmpeg中表达式
在FFmpeg可以对算术表达式求值。FFmpeg有一套内部的表达式规则,通过libavutil/eval.h提供的接口实现。表达式类型包含一元、二元、常量和函数。两个表达式expr1、expr2可以通过分号组合成为一个新的表达式"expr1;expr2",新的表达式将会分别对expr1,expr2求值,并将expr2的结果作为新表达式的结果返回。一元表达式一元表达式的操转载 2017-07-12 15:36:24 · 608 阅读 · 0 评论 -
用ffmpeg创建多个program的ts
转载自: 用ffmpeg创建多个program的ts (出处: ChinaFFmpeg) http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=322&fromuid=29 谢谢作者首先分析需要创建多个program(节目),然后查看需要导入的流的内容:ffmpeg -i INPIT1 -转载 2016-09-08 09:16:59 · 2147 阅读 · 0 评论