
FFmpeg
文章平均质量分 68
tkp2014
这个作者很懒,什么都没留下…
展开
-
Using libav* (FFmpeg)
First some disambiguiation. there is a project called "libav" which is basically a fork of FFmpeg. There is also a library system that underlies FFmpeg itself, also called libav. This page is about原创 2018-01-18 19:23:07 · 538 阅读 · 0 评论 -
使用Shader实现YUV到RGB的转换
网上有很多YUV到RGB的转化程序,不过他们基本上都是基于CPU进行计算,基于CPU计算大体上有一下的一些方法,最原始的肯定是根据转换公式直接进行浮点运算,要想提高速度,可以用左移和右移操作,将浮点运算变成整数运算,这样转化的速度会成倍的提高。另外还可以用查表法,因为YUV都是在0~255之间,他们总是有范围的,先生成一个很大的查找表,直接对每一个YUV分量查找出RGB值,当然这个查找表会很大,可转载 2015-07-12 23:26:02 · 2852 阅读 · 0 评论 -
ffmpeg中tbc tbr tbn代表的含义
ffmpeg中 tbc tbr tbn的含义解释因为最近的工作需要从MP4视频中提取一些关键帧,要了解如何将视频的时间点转换为对应的帧号,所以查阅了一些关于视频编解码以及时间同步方式的资料。再此总结一下。首先是解码,利用FFmpeg解码得到的信息通常如下:Metadata: major_brand : isom minor_version转载 2015-07-09 23:53:57 · 2122 阅读 · 0 评论 -
ffmpeg解码+opencv显示+时间测试
/*** 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放*/#define _CRTDBG_MAP_ALLOC#include #define __STDC_CONSTANT_MACROS#include #include #include // Opencv#include #include #include #include #原创 2015-07-09 13:34:10 · 1069 阅读 · 0 评论 -
ffmpeg解码数据转为Mat通过opencv函数显示
/*** 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放*/#define __STDC_CONSTANT_MACROS#include // Opencv#include #include #include #include extern "C"{#include "libavutil/avutil.h"#include "liba原创 2015-06-26 16:39:48 · 5530 阅读 · 1 评论 -
FFmpeg解码-Opencv数据显示-双线程调度
大致想法是:使用ffmpeg实现解码,解码后的数据转化为 Mat,调用 opencv中的函数显示,同时开启两个线程解码显示两路视频/*** 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放*/#define __STDC_CONSTANT_MACROS#include #include #include // Opencv#inclu原创 2015-06-26 18:11:38 · 901 阅读 · 0 评论 -
FFmpeg(2.4.4)中关于图像格式的头文件 -- pixfmt.h
/* * copyright (c) 2006 Michael Niedermayer * * 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 Pu原创 2015-06-26 16:32:06 · 6285 阅读 · 0 评论 -
使用ffmpeg实现解码并保存为yuv文件
通过ffmpeg实现解码并保存为yuv文件/*** 抽取ffmpeg中的函数接口实现视频解码并保存*/#define __STDC_CONSTANT_MACROS#include extern "C"{#include "libavutil/avutil.h"#include "libavcodec/avcodec.h"#include "libavforma原创 2015-06-26 16:14:27 · 2302 阅读 · 0 评论 -
ffmpeg和Opencv结合进行视频解码播放
引子OpenCV中有自己的用于处理图片和视频的类VideoCapture,可以很方便的读入文件和显示。现在视频数据流是ffmpeg解码h264文件得到的,由于要依赖该数据源进行相应的后续处理,所以需要将ffmpeg中得到的数据缓存转换成可以被OpenCV处理的Mat类对象。ffmpeg介绍FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可转载 2015-06-25 21:43:25 · 2407 阅读 · 0 评论 -
FFmpeg + Opencv 解码和显示
利用FFmpeg开源编解码库实现解码,转换为Mat格式后,使用Opencv显示/*** 抽取ffmpeg中的函数接口实现视频解码* 再通过Opencv中的函数接口播放,同时开启两个视频进行操作*/#define __STDC_CONSTANT_MACROS#include #include #include // Opencv#include原创 2015-07-07 14:12:17 · 1919 阅读 · 0 评论 -
FFmpeg解码封装为类以及Opencv显示播放
// 解码函数接口头文件//#ifndef __FFMPEG_DECODE_H__//#define __FFMPEG_DECODE_H__// Opencv#include #include #include #include extern "C"{#include "libavutil/avutil.h"#include "libavcodec/avcodec原创 2015-08-02 10:58:06 · 866 阅读 · 0 评论 -
FFmpeg简介
认识FFmpegFFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统工程师一般。几个小知识:FFMPEG项目是由法国人转载 2016-04-09 21:37:39 · 845 阅读 · 0 评论 -
FFmpeg无法编译ffplay解决办法
新版本的ffmpeg3.3.2可以使用sdl2.0(1)安装sdl2下载sdl2源代码tar zxvf SDL2-2.0.5.tar.gzcd SDL2-2.0.5./configure --prefix=/usrmakesudo make install(2) 修改config.mak原创 2017-06-15 20:41:24 · 2076 阅读 · 0 评论 -
FFmpeg中的滤镜(filter)知识点记录
FFmpeg支持多种滤镜,查看全部滤镜$ ffmpeg -filters1、滤镜图、滤镜链、滤镜之间关系滤镜图(filtergraph):跟在 -vf 之后的就是一个滤镜图 滤镜链(filterchain):一个滤镜图包含多个滤镜链滤镜(filter):一个滤镜链包含多个滤镜概括来说就是:滤镜 ∈ 滤镜链 ∈ 滤镜图原创 2016-11-23 20:30:26 · 10118 阅读 · 0 评论 -
FFmpeg中有关时间戳的函数
/* * Copyright (c) 2005-2012 Michael Niedermayer * * 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 Gener原创 2016-10-28 15:30:15 · 933 阅读 · 0 评论 -
ffmpeg用代码实现自己的muxer
1、概述本代码实现了一个muxer并加入到ffmpeg的AVOutputFormat 链表中去,使代码能直接调用。实现的意义一是了解ffmpeg代码结构,二是可以自己整自己的视频格式,让别人播放不了。2、代码简单看下代码:[cpp] view plain copy/* *本程序主要实现一个自己的muxer并加入到m转载 2016-09-01 11:25:43 · 1119 阅读 · 0 评论 -
音视频同步记录
学习资源链接:链接1 链接2 链接3原创 2016-08-22 13:47:52 · 878 阅读 · 0 评论 -
FFmpeg中的重要数据结构
在正式开始解码练习前先了解下关于FFmpeg中比较重要的函数以及数据结构。1. 数据结构: (1) AVFormatContext AVFormatContext是一个贯穿始终的数据结构,很多函数都要用到它作为参数。FFmpeg代码中对这个数据结构的注释是:format I/O context 此结构包含了一个视频流的格式内容。其中存有了AVInputFormat(or转载 2016-08-06 23:10:04 · 597 阅读 · 0 评论 -
FFmpeg框架
简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FFmpe转载 2016-08-04 16:31:46 · 378 阅读 · 0 评论 -
Ubuntu14.04 + Eclipse + FFmpeg 调试ffmpeg源代码
参考连接:http://www.cnblogs.com/zdcaolei/archive/2012/05/03/2480259.htmlhttp://www.cnblogs.com/elesos/archive/2013/03/23/2977778.htmlhttp://trac.ffmpeg.org/wiki/CompilationGuide/Generichttp:原创 2016-07-27 16:43:03 · 946 阅读 · 0 评论 -
FFmpeg解码多线程
FFMPEG多线程编码器一般以在Slice内分功能模块进行多线程编码,如h263,h263P,msmpeg(v1, v2, v3),wmv1。包含以下几个线程:(1)Pre_estimation_motion_thread运动估计前的准备;(2)Estimation_motion_thread运动估计;(3)Mb_var_thread宏块其他变量;(4)Encode_thread编码主线程。当然也转载 2015-06-25 22:55:18 · 726 阅读 · 0 评论 -
FFmpeg解码框架
FFmpeg是相当强大的多媒体编解码框架,在深入分析其源代码之前必须要有基本的多媒体基础知识,否则其源代码会非常晦涩难懂。本文将从介绍一些基本的多媒体只是,主要是为研读ffmpeg源代码做准备,比如一些编解码部分,只有真正了解了多媒体处理的基本流程,研读ffmpeg源代码才能事半功倍。下面分析一下多媒体中最基本最核心的视频解码过程,平常我们从网上下载一部电影或者一首歌曲,那么相应的多媒体播放器转载 2015-01-02 21:53:18 · 570 阅读 · 0 评论 -
FFmpeg和SDL教程之二(Outputting to the Screen)
SDL 和 Videosdl 是 Simple Direct Layer的缩写,是一个优秀的多媒体库,具有跨平台、并且在许多工程应用的优点。你可以从官网下载库文件,或者下载适合自己操作系统的开发包(如果存在的话)。下载的库文件需要编译。sdl有很多向屏幕画图的方法,其中有一个就是用来在屏幕上显示电影的:YUV overlay(YUV 技术上该称为 YCbCr, 类似RGB那样来存取翻译 2014-12-13 13:35:05 · 710 阅读 · 0 评论 -
各种RGB格式转换
FFMPEG 实现的 YUV 、RGB各种图像原数据之间的转换(swscale)资源链接:http://blog.youkuaiyun.com/leixiaohua1020/article/details/14215391RGB之间互相转换资源链接:http://www.rosoo.net/a/200911/8023.html转载 2014-12-23 16:58:27 · 1154 阅读 · 0 评论 -
FFmpeg+SDL视频播放(4)
创建线程综述前面我们利用SDL的音频函数实现了对音频解码和播放的支持,我们定义一个包含音频回调函数callbacks的线程函数,当我们需要音频的时候就使SDL启动这个线程。现在我们将要对视频播放做同样的事情,这样能使代码更容易模块化和协作,尤其有利于音视频同步,那么我们从哪里开始呢?首先注意到,我们的主函数需要做太多的事情:运行event循环,读packet,解码视频,转载 2014-12-04 23:23:28 · 580 阅读 · 0 评论 -
FFmpeg+SDL视频播放(1)
概要电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。每个流是由不同的编码器来编码生成的。编解码器描转载 2014-12-04 22:12:13 · 644 阅读 · 0 评论 -
FFmpeg+SDL视频播放(3)
如何同步视频前面整个的一段时间,我们有了一个几乎无用的电影播放器。当然,它能播放视频,也能播放音频,但是它还不能被称为一部电影。那么我们还要做什么呢?PTS和DTS幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么转载 2014-12-04 23:28:17 · 760 阅读 · 0 评论 -
FFmpeg+SDL视频播放(2)
SDL和视频为了在屏幕上显示,我们将使用SDL.SDL是Simple Direct Layer的缩写。它是一个出色的多媒体库,适用于多平台,并且被用在许多工程中。你可以从它的官方网站的网址 http://www.libsdl.org/上来得到这个库的源代码或者如果有可能的话你可以直接下载开发包到你的操作系统中。按照这个指导,你将需要编译这个库。(剩下的几个指导中也是一样)转载 2014-12-04 23:09:17 · 755 阅读 · 0 评论 -
I P B 帧和DTS PTS的关系
基本概念I frame 帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。P frame 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数转载 2014-12-02 20:23:03 · 623 阅读 · 0 评论 -
Windows平台编译ffmpeg
在开始这篇博文之前,我心里一直忐忑不安七上八下。因为从最初的安装编译环境开始一直到最终编译完成,这整个工程堪称规模宏大,而且路途中陷阱重重,稍不注意就有可能前功尽弃。在将从前编译出的库删掉之后,我心里甚至有些许怀疑自己还能不能再次成功编译出来。不过既然走到了这一步,就是爬,也得爬到终点!闲话到此,开始进入正题。Linux下编译FFmpeg之下载源文件并编译 http://www.linux转载 2014-12-01 16:39:49 · 733 阅读 · 0 评论 -
Windows7+64位+VS2010+FFmpeg的安装
。。。。原创 2014-12-01 10:49:49 · 551 阅读 · 0 评论 -
视频编解码基础概念
FFMPEG之视频编解码基础muxer/demuxermuxer是合并,将视频文件、音频文件和字幕文件合并为某一个视频格式。如,可将a.avi, a.mp3, a.srt用muxer合并为mkv格式的视频文件。demuxer是拆分这些文件的。container指包含数据的文件。容器的类型决定了信息存放的位置。例如AVI原创 2014-12-23 19:49:01 · 821 阅读 · 0 评论 -
FFmpeg -- 解码视频
ffmpeg是编解码的利器,用了很久,以前看过dranger 的教程,非常精彩,受益颇多,是学习ffmpeg api很好的材料。可惜的是其针对的ffmpeg版本已经比较老了,而ffmpeg的更新又很快,有些API已经完全换掉了,导致dranger教程中的 代码已经无法编译,正好最近需要使用ffmpeg,于是就利用dranger的教程和代码,自己边学边记录,于是也就有了这个所谓的 New FFm转载 2014-12-23 20:22:32 · 588 阅读 · 0 评论 -
SDL2.0在Ubuntu14.04下的安装及测试
安装环境 系统 :Ubuntu 14.04方式:编译源代码的方式SDL版本:SDL2-2.0.3(下载)安装步骤(1)原创 2015-01-11 20:28:21 · 3687 阅读 · 0 评论 -
texi格式文件
ffmpeg自带文档及示例程序,存放在doc目录下,文档对ffmpeg各个模块都有说明。发现一个问题,很文档扩展名为*.texi,如ffplay.texi、ffmpeg.texi等。用文本编辑器打开,发现其中多了一些特殊的标记,在ubuntu一个命令texi2html,可以将*texi文件转换成html。sudo apt-get install texi2html安装完转载 2014-12-15 12:29:45 · 5789 阅读 · 0 评论 -
ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我转载 2014-12-14 19:10:01 · 610 阅读 · 0 评论 -
FFmpeg和SDL教程之三(Playing Sound)
Audio现在我们开始加入声音,SDL也提供了输出声音的方法。SDL_OpenAudio() 函数可以自己打开音频设备。它需要一个 SDL_AudioSpec 结构体作为参数,该结构体包含了所有我们将要输出音频的信息。先讲一下音频是如何在计算机中处理的。数字音频包含着很长的采样流(long stream of samples)。每个采样代表着一个音波的值。声音被某些特定的采翻译 2014-12-14 15:43:33 · 852 阅读 · 0 评论 -
YV12、I420、YUV420P的区别
YV12和I420的区别一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小 size=width×heigth×3 Bit,RGB32的size=width×heigth×4,如果是I420(即YUV标准格式4:2:0)的数据量是 size=width×heigth×1.5 Bit。在采集到RGB24数据后,需要对这个格式的数据进行第一次压缩。即将图像的颜色转载 2014-12-13 11:57:28 · 607 阅读 · 0 评论 -
FFmpeg和SDL教程之一(Making Screencaps)
原文网址:http://dranger.com/ffmpeg/tutorial01.html翻译 2014-12-04 23:34:28 · 689 阅读 · 0 评论 -
ffmpeg参数中文详细解释
a) 通用选项-L license-h 帮助-fromats 显示可用的格式,编解码的,协议的...-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持转载 2014-12-24 16:41:10 · 467 阅读 · 0 评论