ffmpeg
文章平均质量分 78
wh8_2011
这个作者很懒,什么都没留下…
展开
-
ffmpeg 在linux下编译
1、下载ffmpeg。 wget http://down1.chinaunix.net/distfiles/ffmpeg-0.4.9-p20051120.tar.bz2 我是在这个网址上下载ffmpeg-0.4.9-p20051120.tar.bz2,看网上有人用的是svn下载,但是我的机子中没有svn客户端,然后就在网上搜索,下载了这个版本。如果利用svn可以下载ff转载 2015-11-22 12:49:18 · 1597 阅读 · 0 评论 -
linux ffmpeg 简单视频播放器
1.相信大家在网上看到的关于ffmpeg都已经很多了,这里我就不多介绍了,下面直接晒出代码,和自己关于ffmpeg一些体会2.linux ffmpeg的使用步骤初始化ffmpeg库 av_register_all()读取文件的头部,获取基本信息 avformat_open_input()从转载 2015-11-19 17:58:58 · 2415 阅读 · 0 评论 -
FFmpeg 基本用法
FFmpegFFmpeg 基本用法本课要解决的问题1.FFmpeg的转码流程是什么?2.常见的视频格式包含哪些内容吗?3.如何把这些内容从视频文件中抽取出来?4.如何从一种格式转换为另一种格式?5.如何放大和缩小视频?6.如何旋转,翻转,填充,裁剪,模糊,锐化视频?7.如何给视频加logo,删除logo?8.如何给视频转载 2016-01-18 13:40:45 · 444 阅读 · 0 评论 -
使用ffmpeg步骤
av_register_all();//初始化ffmpeg库,如果系统里面的ffmpeg没配置好这里会出错 if (isNetwork) { //需要播放网络视频 avformat_network_init(); } avformat_open_input();//打开视频文件 avformat_find_stream_info(转载 2016-01-19 18:10:47 · 494 阅读 · 0 评论 -
YUV格式分析
在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式. 我们可以把YUV看成是一个RGB的变种来理解. YUV的原理是把亮度与色度分离,研究证明,人眼对亮度的敏感超过色度。利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点。 YUV三个字母中,其中"Y"表示明亮度(Lumina nce或Luma),也就是灰阶值;而"U"和"V"转载 2016-01-21 11:58:06 · 404 阅读 · 0 评论 -
FFmpeg示例程序合集-批量编译脚本
此前做了一系列有关FFmpeg的示例程序,组成了《最简单的FFmpeg示例程序合集》,其中包含了如下项目:simplest ffmpeg player: 最简单的基于FFmpeg的视频播放器simplest ffmpeg audio player: 最简单的基于FFmpeg的音频播放器simplest ffmpeg pic encoder:转载 2015-12-06 21:15:43 · 748 阅读 · 0 评论 -
ffmpeg 使用小记
最近一个月里由于工作需要做了一些视频转换的工作,快要回家过年了,做些小记以便以后查阅!一、安装 系统运行环境:ubuntu12.04 64bit 安装过程:sudo apt-get install ffmpeg二、命令参数 命令格式:ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]转载 2016-01-28 14:19:41 · 443 阅读 · 0 评论 -
linux下ffmpeg安装
1.ffmpeg下载地址: http://www.ffmpeg.org/download.html2.解压1$ tar zvfj ffmpeg.tar.bz2这里作者假设已经重命名为ffmpeg.tar.bz23.解压后进入ffmpeg的文件夹,查看readme, 可以看到和正常的编译安装步骤无异configure && make && make install转载 2016-02-15 09:10:16 · 9544 阅读 · 3 评论 -
ffmpeg对H.264进行rtp打包
ffmpeg对h.264进行RTP打包ffmpeg -i test22.264 -f rtp rtp://10.102.5.226:15000会报如下错误:Output file #0 does not contain any stream后来查原因发现是因为没有加上x264新修改命令如下:ffmpeg -i test22转载 2016-02-17 11:49:47 · 4690 阅读 · 0 评论 -
FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
本文简单分析FFmpeg常见结构体的初始化和销毁函数的源代码。常见的结构体在文章:《FFMPEG中最关键的结构体之间的关系》中已经有过叙述,包括:AVFormatContext:统领全局的基本结构体。主要用于处理封装格式(FLV/MKV/RMVB等)。AVIOContext:输入输出对应的结构体,用于输入输出(读写文件,RTMP协议等)。AVStream,AVC转载 2016-07-12 15:22:58 · 1250 阅读 · 0 评论 -
FFmpeg源代码简单分析:avio_open2()
FFmpeg的库函数源代码分析文章列表:【架构图】FFmpeg源代码结构图 - 解码FFmpeg源代码结构图 - 编码【通用】FFmpeg 源代码简单分析:av_register_all()FFmpeg 源代码简单分析:avcodec_register_all()FFmpeg 源代码简单分析:内存的分配和释放(av_malloc()、av_f转载 2016-07-12 17:11:09 · 1018 阅读 · 0 评论 -
AVDictionary结构体相关源码介绍
本文对AVDictionary结构体部分相关函数代码进行了介绍[cpp] view plain copy 本文研究分析AVDictionary相关代码 struct AVDictionary { int count; AVDictionaryEntry *elems; };转载 2016-07-24 14:43:27 · 4616 阅读 · 2 评论 -
ffmpeg结构体以及函数介绍(一)
本文对在使用ffmpeg进行音视频编解码时使用到的一些函数做一个简单介绍,我当前使用的ffmpeg版本为:0.8.5,因为本人发现在不同的版本中,有些函数名称会有点小改动,所以在此有必要说明下ffmpeg的版本号。 ffmpeg本人也是刚接触,本文将采用累加的方法逐个介绍我使用到的函数,如有不妥之处,还望谅解! 头文件引入方法:extern "C"{#inclu转载 2016-07-24 14:48:36 · 321 阅读 · 0 评论 -
ffmpeg结构体以及函数介绍(二)
1 avcodec_find_decoder()/** * Find a registered decoder with a matching codec ID. * * @param id CodecID of the requested decoder * @return A decoder if one was found, NULL otherwise. */转载 2016-07-24 14:49:22 · 353 阅读 · 0 评论 -
ffmpeg结构体以及函数介绍(三)
1 AVPackettypedef struct AVPacket { /** * Presentation timestamp in AVStream->time_base units; the time at which * the decompressed packet will be presented to the user. * C转载 2016-07-24 14:50:13 · 321 阅读 · 0 评论 -
Linux 使用 ffmpeg 开发
1、下载ffmpeg。×比本文更详细的安装帮助×"linux下安装FFMPEG全纪录.doc"http://vdisk.weibo.com/s/lBNHd http://download.chinaunix.net/download.php?id=5532&ResourceID=2990 我是在这个网址上下载ffmpeg-0.4.9-p20051转载 2016-07-24 16:15:48 · 1907 阅读 · 0 评论 -
ffmpeg开发指南
FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FFmpeg。 一、转载 2016-07-24 16:40:15 · 2477 阅读 · 0 评论 -
FFmpeg源代码简单分析:libswscale的sws_getContext()
FFmpeg的库函数源代码分析文章列表:【架构图】FFmpeg源代码结构图 - 解码FFmpeg源代码结构图 - 编码【通用】FFmpeg 源代码简单分析:av_register_all()FFmpeg 源代码简单分析:avcodec_register_all()FFmpeg 源代码简单分析:内存的分配和释放(av_malloc()、av_f转载 2016-07-24 17:54:05 · 932 阅读 · 0 评论 -
2个YUV视频 拼接技术
[cpp] view plain copy/************************************************* * 主要功能:两路 YUV4:2:0拼接一路左右半宽格式YUV视频 参考资料:http://www.pudn.com/downloads271/sourcecode/multimedia/vfw/detail1237转载 2016-07-25 18:39:41 · 2411 阅读 · 0 评论 -
FFMPEG合两帧YUV420P为一帧
pSum_FrameYUV为目的帧,pFrameYUV是被合帧。把pFrameYUV合到pSum_FrameYUV上,高度相同,宽度是pSum_FrameYUV的1/2 ,m_rect是合成后视频帧显示的区域。注意:pFrameYUV.linesize并不是一行有效地数据宽度。它比一行的宽度m_rect.Width()/2要大。所以在复制时,每次要复制m_rect.Width()/2个数据转载 2016-07-26 15:12:53 · 1442 阅读 · 1 评论 -
FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
FFMPEG中的swscale提供了视频原始数据(YUV420,YUV422,YUV444,RGB24...)之间的转换,分辨率变换等操作,使用起来十分方便,在这里记录一下它的用法。swscale主要用于在2个AVFrame之间进行转换。下面来看一个视频解码的简单例子,这个程序完成了对"北京移动开发者大会茶歇视频2.flv"(其实就是优酷上的一个普通视频)的解码工作,并将解码后的数转载 2016-07-26 18:39:44 · 1827 阅读 · 0 评论 -
ffmpeg 解复用视频文件
解复用视频文件:就是提取出音频文件和视频文件的ES流数据。而对于aac和h264来说,提取出来的数据直接保存并不能成功的播放,原因就在ffmpeg解出的ES数据比较纯净,没有ADTS头,而很多解码器都是需要ADTS头信息来进行解码的,所以就要对aac数据进行头部adts结构的添加。 对于h264文件来说,h264有两种封装,一种是annexb模式,传统模式,有startcode,S转载 2016-07-06 18:36:28 · 1957 阅读 · 0 评论 -
ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我转载 2016-07-06 18:38:18 · 432 阅读 · 0 评论 -
[总结]FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,转载 2016-07-19 18:15:21 · 1480 阅读 · 0 评论 -
ffmpeg与x264编码指南
x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。 对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two pass ABR。码率控制是一种决定为每一个视频帧分配多少比特数的方法,它将决定文件的大小和质量的分配。 如果你在编译和安装libx264 方面需要帮助,请查看ffmpe转载 2016-08-03 21:35:13 · 456 阅读 · 0 评论 -
运用ffmpeg生成MP4文件
生成的MP4文件,用播放器看见的视频如下,同时你可以听到一种呼叫的音频声音生成的MP4文件音频为(aac)、视频为H264由于生成的H264需要依赖x264开源库【因为需要将普通的原始数据编码成H264,而ffmpeg默认是按x264进行编码】,在生产x264库过程中,一般我们默认生成静态库即可。编译ffmpeg并安装代码如下:转载 2016-08-03 21:44:16 · 1340 阅读 · 0 评论 -
ffmpeg开发指南
Ffmpeg 中的Libavformat 和 libavcodec库是访问大多数视频文件格式的一个很好的方法。不幸的是,在开发您自己的程序时,这套库基本上没有提供什么实际的文档可以用来作为参考(至少我没有找到任何文档),并且它的例程也并没有太多的帮助。这种情况意味着,当我在最近某个项目中需要用到 libavformat/libavcodec 库时,需要作很多试验来搞清楚怎样使用它们。这里是转载 2016-08-04 11:07:52 · 1690 阅读 · 0 评论 -
ffmpeg常用基本命令
1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流2.视频解复用ffmpeg –i test.mp4 –vcodec copy –an –f m4转载 2016-08-04 11:51:33 · 1452 阅读 · 0 评论 -
使用FFmpeg类库实现YUV视频序列编码为视频
搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频。关于YUV视频序列,我就不多讲了,可以看书学习,通常的视频序列都是YUV420格式的。步骤也就那几步,添加视频流,打开编码器,开辟相应的内存空间,然后就可以打开YUV序列逐帧写入数据了,so easy!记得最后要做好文件的关闭和内存的释放,因为FFmpeg是c风格的转载 2016-08-04 14:45:21 · 553 阅读 · 0 评论 -
最简单的基于FFmpeg的AVfilter例子(水印叠加)
=====================================================最简单的基于FFmpeg的AVfilter例子系列文章:最简单的基于FFmpeg的AVfilter例子(水印叠加)最简单的基于FFmpeg的AVfilter的例子-纯净版==============================================转载 2016-08-04 15:09:18 · 1004 阅读 · 0 评论 -
ffmeg 反交错
昨天发现播放TS流(PAL 25FPS)时有横纹,查资料找到原因是解码出来的画面是用于隔行扫描显示的画面,需要进行反交错处理成逐行扫描显示画面.因为是帧内交错,所以不要IVTC(IVTC是match场操作,这里已经在同一帧了)。 在ffmpeg中,进行反交错需要用到avfilter,即图像过滤器,ffmpeg中有很多过滤器,很强大,反交错的过滤器是yadif. 基本的过转载 2016-08-04 17:03:10 · 1362 阅读 · 0 评论 -
Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用From Ffmpeg工程组Jump to: navigation, search目录[隐藏]1 Ffmpeg使用语法2 视频文件截图3 视频格式转换4 屏幕录制5 视频采集6 使用ffmpeg转载 2016-08-05 14:29:26 · 15129 阅读 · 0 评论 -
ffmpeg_struct: AVRational
FFMPEG的很多结构中有AVRational time_base;这样的一个成员,它是AVRational结构的[cpp] view plain copy print?typedef struct AVRational{ int num; /// int den; /// } AVRational;转载 2016-08-05 14:59:02 · 387 阅读 · 0 评论 -
ffmpeg 最简单的转码封装mp4文件
本例简单实现了解码后的video重新编码264之后在mux成MP4文件的过程,主要是用来记录muxing的方法。 下面详细说一下细节: 大家都知道一般解码出来的数据都是播放顺序,解码器是将编码顺序的数据重新按照解码后的播放顺序输出的。而编码器是把数据根据解码需要的顺序重新排序保存的。 当然,以上情况只在有帧的情况下才有用,否则只有IP帧的话解码和编码的顺序是一样的转载 2016-08-02 16:37:24 · 7389 阅读 · 0 评论 -
linux下交叉编译ffmpeg,并加入H264编码支持
1.libx264 编译./configure --enable-static --disable-asm --prefix=/usr/local/ffmpegDM3730 --arch=arm --host=arm-linux --cross-prefix=arm-arago-linux-gnueabi- makemake install2.ffmpeg 编译转载 2016-08-02 16:56:47 · 1334 阅读 · 0 评论 -
ffmpeg(8) AVIOContext II
Part I is http://blog.csdn.net/xiruanliuwei/article/details/24974873struct AVIOContext 结构体中几个比较重要的结构体成员:unsigned char *buffer; /** int buffer_size; /**unsigned char转载 2016-08-06 17:10:16 · 442 阅读 · 0 评论 -
ffmpeg(3) AVIOContext
/** * Bytestream IO Context. * New fields can be added to the end with minor version bumps. * Removal, reordering and changes to existing fields require a major * version bump. * sizeof(AVIO转载 2016-08-06 17:11:33 · 546 阅读 · 0 评论 -
最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer)
=====================================================最简单的基于FFmpeg的封装格式处理系列文章列表:最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)最简单的基于FFmpeg的封装格式处理转载 2016-08-06 17:54:25 · 821 阅读 · 0 评论 -
ffmpeg主要数据结构及其之间的关系
一、FFMPEG数据结构 AVCodecContext:这是一个描述编解码器上下文的数据结构,包含了众多编解码器需要的参数信息。 如果是单纯使用libavcodec,这部分信息需要调用者进行初始化;如果是使用整个FFMPEG库,这部分信息在调用 av_open_input_file和av_find_stream_info的过程中根据文件的头信息及媒体流内的头转载 2016-08-18 19:22:48 · 639 阅读 · 0 评论 -
ffmpeg 如何音视频同步
output_example.c 中AV同步的代码如下(我的代码有些修改),这个实现相当简单,不过挺说明问题。音视频同步方法:选择一个参考时钟,参考时钟上的时间是线性递增的,生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间)。在播放时,读取数据块上的时间戳,同时参考当前参考时钟上的时间来安排播放。数据流不会发生参考关系。 步转载 2016-08-19 16:20:12 · 1469 阅读 · 0 评论