![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FFMpeg学习
文章平均质量分 71
cosmoslife
多媒体编程、网络编程、系统编程、网络安全编程
展开
-
音视频流::ffplay::tutorial04
转自:http://blog.chinaunix.net/uid-24203478-id-3172725.html 所用的版本为ffmpeg 0.6.3编译命令:gcc -o tutorial04 tutorial04.c -lavformat -lavcodec -lz -lm -lswscale `sdl-config --cflags --libs 转自:转载 2013-03-14 10:20:19 · 746 阅读 · 0 评论 -
关于ffmpeg中的VBR控制的讨论(编码时参数设置)
很多朋友问起我关于ffmpeg 中VBR的问题,主要是该设置哪些参数,该 如何设置等问题。以前我也没有研究过ffmpeg的VBR,所以就在网上查找了一下,无功而返,后面就看ffmpeg.c的源代码,初步认为通过下面的参 数或选项便可以实现VBR的控制: { "b", HAS_ARG | OPT_VIDEO, {(void*)opt_video_bitrate}, "set video转载 2012-06-29 16:27:28 · 2527 阅读 · 1 评论 -
如何强制ffmpeg编码时输出一个关键帧
原文地址:http://www.ffmpeg.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6ffmpeg%E7%BC%96%E7%A0%81%E6%97%B6%E8%BE%93%E5%87%BA%E4%B8%80%E4%B8%AA%E5%85%B3%E9%94%AE%E5%B8%A7 如何强制ffmpeg编码时输出一个关键转载 2012-06-29 16:24:43 · 752 阅读 · 0 评论 -
mingw编译ffmpeg+librtmp过程记录
ffmpeg支持RTMP客户端,如果想使用ffmpeg将音视频发布至red5上,以实现实时直播,则需要librtmp的支持。在linux下的编译比较简单,这里使用mingw在windows上编译。1.相关资源下载 rtmpdump-2.3-windows.zip http://rtmpdump.mplayerhq.hu/download openssl-1.0.0原创 2012-06-20 11:54:07 · 1401 阅读 · 0 评论 -
BMP文件格式分析
本来不想写这篇东西,因为介绍BMP文件结构的资料太多了,都有些滥了。但刚写完BMP的读写模块,又不想不留下点什么,所以就写了,全当是学习笔记吧。自己以后查资料时也方便一些,也许对某些初哥还会有点用^_^注:本文参考了林福宗老师的有关BMP文件格式的文章,在此声明。简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件转载 2012-05-25 11:46:15 · 870 阅读 · 0 评论 -
转 ffmpeg图象倒置
转 ffmpeg图象倒置2012-02-07 3:01 P.M. 用FFMPEG 开发在DirectShow 环境下生成FLV的筛选器(Filter)的时候,碰到了一个比较古怪的问题。因为该筛选器的输入格式需要支持常见的RGB,和YUV格式。但是在输入是RGB格式的时候,最终生成的视频图像是翻转的。而用YUV格式确实没有问题的。分析了一下程序,因为ffmpeg转载 2012-05-24 22:26:57 · 1249 阅读 · 0 评论 -
sws_getContext用法实例 收藏
struct SwsContext* sws_getContext (int srcW, int srcH, int srcFormat, int dstW, int dstH, int dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, double *param)Returns an SwsContext t转载 2012-05-24 19:15:34 · 1642 阅读 · 0 评论 -
ffmpeg中sws_scale()用法实例
/* * Copyright (C) 2003 Michael Niedermayer michaelni@gmx.at > * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of t转载 2012-05-24 19:16:06 · 1620 阅读 · 0 评论 -
使用FFMpeg中的sws_scale函数进行RGB24转YUV数据编码
//功能:将一张BMP位图作为数据源,利用FFMpeg编码出一个MPG的视频文件#include extern "C"{#include "libavutil/imgutils.h"#include "libavutil/opt.h"#include "libavcodec/avcodec.h"#include "libavutil/mathematics.h"原创 2012-05-24 19:26:36 · 8532 阅读 · 4 评论 -
FFMpeg中apiexample.c例子分析——编码分析
(1)首先,main函数中一开始会去调用avcodec_init()函数,该函数的作用是初始化libavcodec,而我们在使用avcodec库时,该函数必须被调用。 (2)avcodec_register_all()函数,注册所有的编解码器(codecs),解析器(parsers)以及码流过滤器(bitstream filters)。当然我们也可以使用个别的注册函数来注册我们所要支持的原创 2012-06-12 22:05:04 · 632 阅读 · 0 评论 -
用ffmpeg把yuv格式转化为mpeg格式
整整花了一整天的时间,终于把yuv格式转换成了mpeg格式。我用的参考函数是ffmpeg中的apiexample.c中的video_encode_example函数。只需在此函数的基础上做一些修改即可。video_encode_example函数中初始化了一个25帧的1秒mpeg格式的图像文件。而要把yuv文件转换为mpeg文件,只需要修改初始化的那部分数据。把原来的数据改为从yu转载 2012-06-12 22:05:12 · 1640 阅读 · 1 评论 -
使用FFMpeg转码(精华)
使用ffmpeg进行视频格式转换的简单例子2006-12-16 23:12主要参考FFMPEG里面的apiexample.c以及output_example.c编写int main(int argc, char **argv){ char *filename = "d:\\1.asf";char *outfilename = "d:\\test.mp转载 2012-05-15 16:58:16 · 1082 阅读 · 1 评论 -
ffmpeg常用参数一览表
基本选项:-formats输出所有可用格式-f fmt指定格式(音频或视频格式)-i filename指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头-y覆盖已有文件-t duration记录时长为t-fs limit_size设置文件大小上限-ss time_off转载 2012-06-11 20:41:36 · 607 阅读 · 0 评论 -
对X264/FFMPEG架构探讨---感觉不错
3. FFMPEG架构分析FFMPEG是目前被应用最广泛的编解码软件库,支持多种流行的编解码器,它是C语言实现的,不仅被集成到各种PC软件,也经常被移植到多种嵌入式设备中。使用面向对象的办法来设想这样一个编解码库,首先让人想到的是构造各种编解码器的类,然后对于它们的抽象基类确定运行数据流的规则,根据算法转换输入输出对象。在实际的代码,将这些编解码器分成encoder/decoder转载 2012-06-11 20:40:43 · 706 阅读 · 0 评论 -
用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS
用FFMPEG SDK进行视频转码压缩的时候,转码成功后去看视频的内容,发现音视频是不同步的。这个的确是一个恼火的事情。我在用FFMPEG SDK做h264格式的FLV文件编码Filter的时候就碰到了这个问题。 经过研究发现,FFMPEG SDK写入视频的时候有两个地方用来控制写入的时间戳,一个是AvPacket, 一个是AvFrame。 在调用avcodec_encode转载 2012-06-11 20:38:41 · 1075 阅读 · 1 评论 -
sws_scale
SwsContext* encoderSwsContext; AVFrame* encoderRawFrame; AVFrame* encoderRescaledFrame; // init and fill the encoderRawFrame with your image data // init encoderRescaledFrame enc转载 2012-06-11 20:30:07 · 777 阅读 · 0 评论 -
apiexample.c
/* * copyright (c) 2001 Fabrice Bellard * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General P转载 2012-06-29 16:31:54 · 681 阅读 · 0 评论 -
FFMpeg中apiexample.c例子分析——解码分析
我们直接从 video_decode_example() 函数开始讲,该函数实现了如何去解码一个视频文件,以 .mpeg 文 件为例。 ( 1 )将缓存的末尾清 0 ,从而确保读操作不会越界导致破坏 mpeg 流。 uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; memset(inbuf + INBU转载 2012-06-29 16:33:49 · 737 阅读 · 0 评论 -
音视频流::ffplay::tutorial05 .
转自:http://blog.chinaunix.net/uid-24203478-id-3179828.html 所用的版本为ffmpeg 0.6.3编译命令:gcc -o tutorial05 tutorial05.c -lavformat -lavcodec -lz -lm -lswscale `sdl-config --cflags --libs` #i转载 2013-03-14 10:31:12 · 820 阅读 · 0 评论 -
音视频流::ffplay::tutorial03
转自:http://blog.chinaunix.net/uid-24203478-id-3171848.html 所用的版本为ffmpeg 0.6.3编译totorial03.c的命令为:gcc -o tutorial03 tutorial03.c -lavformat -lavcodec -lz -lm -lswscale `sdl-config --cflags --li转载 2013-03-14 10:18:32 · 719 阅读 · 0 评论 -
音视频流::ffplay::tutorial02
转自:http://blog.chinaunix.net/uid-24203478-id-3038073.html 所用的版本为ffmpeg 0.6.3totorial02需要安装sdl。用如下命令安装sudo apt-get install libsdl1.2-dev安装完后,编译totorial02.c的命令为:gcc -o tutorial02 tutorial0转载 2013-03-14 10:17:57 · 599 阅读 · 0 评论 -
音视频流::ffplay::tutorial01
原创:http://blog.chinaunix.net/uid-24203478-id-3035890.html 所用的版本为ffmpeg 0.6.3使用编译命令:gcc -o tutorial01 tutorial01.c -lavutil -lavformat -lavcodec -lswscale源程序如下:[cpp] view plaincop转载 2013-03-14 10:17:23 · 683 阅读 · 0 评论 -
FFMPEG使用
1. 简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FF转载 2013-02-28 16:24:06 · 584 阅读 · 0 评论 -
FFMPEG 笔记
1. encode yuv fileffmpeg -s cif -vcodec mpeg4 -i paris.yuv paris.avi-s 指定帧大小 cif 为 352x288,qcif 为 176x144,4cif 为 704x576-vcodec 指定采用的编码器-i 指定输入文件2. output raw YUV420P fileffmpeg -i paris.av转载 2013-02-28 16:23:22 · 715 阅读 · 0 评论 -
基于Ubuntu交叉编译FFmpeg Windows SDK
写在前面 FFmpeg是一个开源且跨平台的音视频解决方案,集采集、转码、流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格式,是做媒体相关开发工作必须要掌握和借鉴的一个项目。定制和编译ffmpeg是做流媒体开发迟早要面对的,linux平台上相对简单,windows平台就比较麻烦了。本文的目的就是详细介绍下如何基于u转载 2013-02-28 16:09:37 · 629 阅读 · 0 评论 -
FFMpeg框架代码阅读
1. 简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FF转载 2013-02-28 16:39:43 · 641 阅读 · 0 评论 -
原来位图是这个样子的阿
前一段时间开发一个编码filter ,过程中出现了回放图像上下倒置的现象,百思不得其解,只好在程序中加了一段将数据倒置的代码,今天看梁老(呵呵,不知多老,反正是前辈拉)的《编程高手箴言》,里面有一段讲正向位图的,好像突然明白了些,便在网上查了一下,终于弄明白以前的现象是怎么回事。bmp位图的存贮方式应该是从下到上,从左向右。也就是说bmp位图的显示方式是第一排显示的是最后一行的数据。在我开发过转载 2013-01-06 13:53:41 · 920 阅读 · 0 评论 -
在Visual Studio 2010[VC++]中使用ffmpeg类库
1,准备工作很多播放器都使用了ffmpeg这个类库来编解码,使用没有关系,但总是有些人不守规则。在耻辱榜上我看到了腾讯(QQPlayer),还有另一家深圳的公司。我对GPL协议也不太了解,issue tracker中显示QQPlayer需要提供完整项目代码。我的疑问是:如果是QQPlayer。其中集成了QQ的一些登陆模块,但这些代码不方便公开。但Player相关的代码已经公开。转载 2012-10-20 15:16:23 · 1124 阅读 · 0 评论 -
在MinGW下编译ffmpeg
因为需要使用ffmpeg的相关库和执行文件,所以需要编译最新的ffmpeg代码。为了能在编译成Windows native执行程序(需要在.net中调用该执行程序),这里我们使用MinGW。1,安装MinGW下载MinGW,双击安装,我当前使用的版本是20110316的。 添加Windows环境变量: BTW:对于使用Cygwin的朋友,为了不影响cygwin的转载 2012-10-20 15:15:57 · 615 阅读 · 0 评论 -
FFMpeg框架代码阅读
简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FFmpe转载 2012-07-17 18:52:23 · 570 阅读 · 0 评论 -
轻松使用 ffmpeg sdk 实现各种格式的rgb以及yuv raw
原文地址:http://www.roarsoft.net/a/Media/AVPlay/201006/9661.html有些时候大家需要一些yuv或者rgb 的 raw data的文件。ffmpeg项目中的libavcodec支持很多格式的raw相互转换,在早期的版本中,使用 img_convert,在新版本中,使用 sws_scale 完成。各种不同的格式在ffmpeg里转载 2012-06-29 16:30:43 · 1090 阅读 · 0 评论 -
ffmpeg 新老接口问题及对照集锦
网上很多关于ffmpeg (libav)的资料都是N年以前的,而事实上ffmpeg数年来一直在“以时俱进”,因此无论是一些新手,或者号称为老手的人,有时候难免出头痛。。。。。。为了解决大家的头痛的问题,特列一个贴子,把ffmpeg相关的一些常见的、版本的问题列举出来,供大家参考,同时也请大家一起补充。1) 不认识guess_format.解决: #define guess_f原创 2012-05-31 09:55:26 · 1684 阅读 · 0 评论 -
FFMPEG coping with webcam
FFMPEG coping with webcam by jiapei » Thu Sep 03, 2009 12:26 pmRefer tohttp://blog.csdn.net/dayongxie/archive/ ... 50736.aspx camera.h#ifndef _CAMERA_H_#define _CAMER_H_ext转载 2012-06-29 16:34:51 · 892 阅读 · 0 评论 -
如何强制ffmpeg编码时输出一个关键帧
原文地址:http://www.ffmpeg.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6ffmpeg%E7%BC%96%E7%A0%81%E6%97%B6%E8%BE%93%E5%87%BA%E4%B8%80%E4%B8%AA%E5%85%B3%E9%94%AE%E5%B8%A7 如何强制ffmpeg编码时输出一个关键转载 2012-06-10 07:51:00 · 665 阅读 · 0 评论 -
一些有用的对话信息,并在自己的工程中得到了验正是可行的
jessiepan(木头)等 级:#80楼 得分:0回复于:2009-10-28 13:47:56我是楼主,自己再来顶一下..最近在调试Streaming Client端的程序,使用live555接收streaming server传输过来的h.264 rtp视频流,然后解码,播放.现在live555的rtp数据接收基本上是可以了,不过在解码这块转载 2012-06-10 07:54:08 · 777 阅读 · 0 评论 -
ffmpeg的码率控制
mediaxyz是一位研究ffmpeg有三年的高人了,这几天一直在折腾ffmpeg中的x264,就是不知道该如何控制码率,主要是参数太多,也不知道该如何设置,在google上search了一下,这方面的介绍为0,那就找mediaxyz请教请教吧,这些可都是经验,非常宝贵! 以下是与mediaxyz在QQ上聊天的记录,只有一部分,因为QQ把之前的谈话删除了,但基本上精髓都可这里了。转载 2012-05-19 20:12:47 · 1165 阅读 · 1 评论 -
ffmpeg 中AVFrame picture
data是一个指向指针的指针(二级、二维指针),也就是指向视频数据缓冲区的首地址,而data[0]~data[3]是一级指针,可以用如下的图来表示:data -->xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ^ ^ ^转载 2012-05-17 17:51:16 · 1044 阅读 · 0 评论 -
对h.264压缩视频码流中i帧的提取(firstime)
这个问题要说清楚还是有点复杂:首先判断 NALU 类型是否是 5,如果是,那么以后连续出现的 NALU 类型为 5 的 NALU 就属于 IDR 帧(一种特殊的 I 帧);如果 NALU 不是 5,则要进一步判断 slice_type 是否是 7,如果是,那么连续出现的 slice_type = 7 的 slice 就属于 I 帧;如果 slice_type = 2,那么就要判断与当前 slice转载 2012-05-17 14:09:27 · 1102 阅读 · 0 评论 -
ffmpeg SDK开发
FFMpeg 中比较重要的函数以及数据结构如下:1. 数据结构:(1) AVFormatContext(2) AVOutputFormat(3) AVInputFormat(4) AVCodecContext(5) AVCodec(6) AVFrame(7) AVPacket(8) AVPicture(9) AVStream2. 初始化函数:(1)转载 2012-05-17 17:54:42 · 911 阅读 · 0 评论 -
如何同步视频
如何同步视频PTS和DTS幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧转载 2012-05-17 15:06:06 · 816 阅读 · 0 评论