ffmpeg解码内存中的jpg数据。 [问题点数:100分]

Bbs1
本版专家分:0
结帖率 0%
Bbs10
本版专家分:122120
版主
Blank
优秀版主 2015年7月优秀小版主
2015年5月优秀小版主
2014年11月论坛优秀版主
Blank
微软MVP 2014年7月荣获微软MVP称号
2013年7月 荣获微软MVP称号
2012年7月 荣获微软MVP称号
2011年7月 荣获微软MVP称号
2010年7月 荣获微软MVP称号
Blank
红花 2016年8月 硬件/嵌入开发大版内专家分月排行榜第一
2016年6月 硬件/嵌入开发大版内专家分月排行榜第一
2015年12月 硬件/嵌入开发大版内专家分月排行榜第一
2015年7月 硬件/嵌入开发大版内专家分月排行榜第一
2015年6月 硬件/嵌入开发大版内专家分月排行榜第一
2015年4月 硬件/嵌入开发大版内专家分月排行榜第一
2014年12月 硬件/嵌入开发大版内专家分月排行榜第一
2014年10月 硬件/嵌入开发大版内专家分月排行榜第一
2014年9月 硬件/嵌入开发大版内专家分月排行榜第一
2014年8月 硬件/嵌入开发大版内专家分月排行榜第一
2014年7月 硬件/嵌入开发大版内专家分月排行榜第一
2014年5月 硬件/嵌入开发大版内专家分月排行榜第一
2014年4月 硬件/嵌入开发大版内专家分月排行榜第一
2014年3月 硬件/嵌入开发大版内专家分月排行榜第一
2014年1月 硬件/嵌入开发大版内专家分月排行榜第一
2013年12月 硬件/嵌入开发大版内专家分月排行榜第一
2013年10月 硬件/嵌入开发大版内专家分月排行榜第一
2013年9月 硬件/嵌入开发大版内专家分月排行榜第一
2013年8月 硬件/嵌入开发大版内专家分月排行榜第一
2013年7月 硬件/嵌入开发大版内专家分月排行榜第一
2013年5月 硬件/嵌入开发大版内专家分月排行榜第一
2013年4月 硬件/嵌入开发大版内专家分月排行榜第一
2013年3月 硬件/嵌入开发大版内专家分月排行榜第一
2012年12月 硬件/嵌入开发大版内专家分月排行榜第一
2012年11月 硬件/嵌入开发大版内专家分月排行榜第一
2011年3月 硬件/嵌入开发大版内专家分月排行榜第一
2011年2月 硬件/嵌入开发大版内专家分月排行榜第一
2009年10月 硬件/嵌入开发大版内专家分月排行榜第一
2009年7月 硬件/嵌入开发大版内专家分月排行榜第一
2009年6月 硬件/嵌入开发大版内专家分月排行榜第一
2007年12月 硬件/嵌入开发大版内专家分月排行榜第一
2003年6月 硬件/嵌入开发大版内专家分月排行榜第一
2002年9月 硬件/嵌入开发大版内专家分月排行榜第一
2002年8月 硬件/嵌入开发大版内专家分月排行榜第一
2002年7月 硬件/嵌入开发大版内专家分月排行榜第一
2002年5月 硬件/嵌入开发大版内专家分月排行榜第一
2002年4月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2015年5月 硬件/嵌入开发大版内专家分月排行榜第二
2015年1月 硬件/嵌入开发大版内专家分月排行榜第二
2014年11月 硬件/嵌入开发大版内专家分月排行榜第二
2014年6月 硬件/嵌入开发大版内专家分月排行榜第二
2013年11月 硬件/嵌入开发大版内专家分月排行榜第二
2013年6月 硬件/嵌入开发大版内专家分月排行榜第二
2013年1月 硬件/嵌入开发大版内专家分月排行榜第二
2012年10月 硬件/嵌入开发大版内专家分月排行榜第二
2012年9月 硬件/嵌入开发大版内专家分月排行榜第二
2012年6月 硬件/嵌入开发大版内专家分月排行榜第二
2012年5月 硬件/嵌入开发大版内专家分月排行榜第二
2012年4月 硬件/嵌入开发大版内专家分月排行榜第二
2012年3月 硬件/嵌入开发大版内专家分月排行榜第二
2012年2月 硬件/嵌入开发大版内专家分月排行榜第二
2011年7月 硬件/嵌入开发大版内专家分月排行榜第二
2011年5月 硬件/嵌入开发大版内专家分月排行榜第二
2011年4月 硬件/嵌入开发大版内专家分月排行榜第二
2011年1月 硬件/嵌入开发大版内专家分月排行榜第二
2010年11月 硬件/嵌入开发大版内专家分月排行榜第二
2009年9月 硬件/嵌入开发大版内专家分月排行榜第二
2009年8月 硬件/嵌入开发大版内专家分月排行榜第二
2008年11月 硬件/嵌入开发大版内专家分月排行榜第二
2008年9月 硬件/嵌入开发大版内专家分月排行榜第二
2004年7月 硬件/嵌入开发大版内专家分月排行榜第二
2004年3月 硬件/嵌入开发大版内专家分月排行榜第二
2004年1月 硬件/嵌入开发大版内专家分月排行榜第二
2003年5月 硬件/嵌入开发大版内专家分月排行榜第二
Bbs1
本版专家分:10
其他相关推荐
ffmpeg如何从内存读取h264音视频流进行解码显示
由于项目组重组,自己有幸开始做音视频编解码方面的研发工作,现将自己近期的工作收获作为BOLG的方式记录起来,方便自己日后查阅和学习。说到H264编解码,不能不提到ffmpeg,据自己查证的资料显示,现大部分软件的H264编解码基本都是使用ffmpeg作为自己的三方库工具,关于ffmpeg有多牛,这里不作赘述。 按照之前查阅的资料,ffmpeg可以解码rtp网络流、从内存读取数据流来解码、读取文件
libjpeg库支持解码内存中的jpeg数据
找到jdatasrc.c这个文件(从命名可以看出其跟输入数据相关),在my_source_mgr这个结构体的上方添加一个结构体(jpeg内存块描述相关)如下: typedef struct{ UINT8* img_buffer; long buffer_size; long pos; }BUFF_JPG;然后将my_source_mgr结构的定义修改如下: typ
FFMPEG内存操作(二)从内存中读取数及数据格式的转换
   相关博客列表:    FFMPEG内存操作(一) avio_reading.c 回调读取数据内存解析     FFMPEG内存操作(二)从内存中读取数及数据格式的转换     FFmpeg内存操作(三)内存转码器    在雷神的《最简单的基于FFmpeg的内存读写例子(内存播放器)》中,它是设计回调函数从输入文件中读取数据。与FFMPEG 官方给出的avio_reading.c不同的是,雷...
ffmpeg解码JPG和PNG等图片
http://blog.chinaunix.net/uid-25272011-id-3690729.html  【特别提醒:本文写作时,贴上去的代码,"\n"回车符号的"\"没有了,不知道为啥,所以阅读代码时请注意区分,或者欢迎到我的CSDN网站阅读         http://blog.csdn.net/jgf_ntu/article/details/8928977】        
关于ffmpeg解码内存增加解决方案-替换解码代码
Linux环境:Ubuntu16.4ffmpeg库版本:ffmpeg-3.4.1问题:最近在弄ffmpeg视频解码,由于项目的需要,需要一直重复播放链表中挂在的图片,一直循环,但是遇到一个问题是,每次调用ffmpeg图像解码函数,使用top命令查看程序所占内存大小,发现每调用一次内存就增加一点,最后占掉了系统所有的内存,被系统防护机制杀掉了。尝试解决:1、遇到上述问题之后,我开始怀疑是不是我忘记释...
ffmpeg :将h264编码的视频流保存为BMP或者JPEG图片
转自:http://blog.csdn.net/oldmtn/article/details/46742555 一般我们知道播放视频流的时候是有截图功能的。 所以我想是否可以将视频流保存为BMP或者JPEG 参考: 1.最简单的基于FFMPEG的图像编码器(YUV编码为JPEG) http://blog.csdn.NET/leixiaohua1020/article/detail
最简单的基于FFmpeg的内存读写的例子:内存转码器
上篇文章记录了一个基于FFmpeg的内存播放器,可以使用FFmpeg读取并播放内存中的数据。这篇文章记录一个基于FFmpeg的内存转码器。该转码器可以使用FFmpeg读取内存中的数据,转码之后再将数据输出到内存。关于如何从内存读取数据,以及如何将数据输出到内存,可以参考文章: FFmpeg读写内存的关键点有2个:1.       初始化自定义的AVIOContext,指定自定义的回调函数。2.
利用libjpeg库解码内存中的jpeg数据
在“VS2013编译libjpeg库”这篇文章中本人介绍了如何在VS中编译libjpeg库并提供了一个应用的范例,而这篇文章将在此基础上,介绍如何用libjpeg库来解码内存中的jpeg数据。     其实这个需求已经不新鲜了,网上也能找到别人提供的一些解决方法,之所以要再次写不过是因为本人觉得那些方法或多或少都有些不对的地方,或者说因为版本的迭代,本来是对的,现在有点问题。当然,本人并没有很费
FFmpeg解码视频帧为jpg图片保存到本地
之前遇到一个需求是将视频一秒一秒解码成一帧一帧的图片,用户滑动选择时间节点(微信朋友圈发10秒视频的编辑界面)。开始我是用的MediaMetadataRetriever类来获取图片,但是对于分辨率比较大的视频(1920*1080)获取一个图片要0.7/0.8秒,太慢了。后来又用FFmpeg的命令来批量的解码视频成一帧一帧的图片,速度依然不快每张图片得耗费0.5秒左右的时间。最后还是用FFmpeg,不
FFmpeg学习1 - 如何从内存中读取数据解码
FFmpeg学习1 - 如何从内存中读取数据解码 做项目的时候需要读取内存进行解码,所以要学习一下 avio_reading.c 分析: https://blog.csdn.net/li_wen01/article/details/64132123 FFmpeg从内存中读取数据: https://blog.csdn.net/leixiaohua1020/article/details/12980...
ffmpeg如何将一帧h264转成jpg
一 什么是h264帧,什么是jpg?h264帧,是把yuv经过h264压缩算法压缩成的一帧h264数据jpg,是一种图片格式,压缩算法为mjpeg。二 把h264转换成jpg图片需要做什么?分为三步:1 解码h2642 编码mjpeg3 存到文件(存到文件就不介绍了)三 ffmpeg转h264为jpg图片代码实现。ffmpeg直接是支持h264解码和mjpeg编码的。(注意,ffmpeg默认不支持...
ffmpeg 解码内存泄漏问题
最近在使用ffmpeg进行视频开发。我使用的是ffmpeg 进行 Demux TS 流,然后,将得到的 NAL Unit 丢给硬件解码器。当我在板子上运行这个模块时运行了5个小时,发现画面卡住了,一查看发现进程被内核kill掉了,所以怀疑是内存泄露。再次启动进程,发现内存在疯狂增长,5个小时后内存只剩下几M了,最终被内核杀掉 通过valgrind发现,内存增长是因为调用: av_read_fra
ffmpeg解码mp4视频数据保存成图片
/******** *本代码参考自雷神博客 * **********/ #ifdef __cplusplus extern "C" { #endif #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavdevice/avdevice.h> #inclu...
ffmpeg内存中读取数据(或将数据输出到内存
ffmpeg一般情况下支持打开一个本地文件,例如“C:\test.avi” 或者是一个流媒体协议的URL,例如“rtmp://222.31.64.208/vod/test.flv” 其打开文件的函数是avformat_open_input(),直接将文件路径或者流媒体URL的字符串传递给该函数就可以了。 但其是否支持从内存中读取数据呢?这个问题困扰了我很长时间。当时在做项目的时候,通过Winpcap抓取网络上的RTP包,打算直接送给ffmpeg进行解码。一直没能找到合适的方法。因为抓取的数据包是存在内存中的
libpng库编码图片为png(RGB压缩为png图片:与ffmpeg视频解码存储为png图片)
//*====== 参考:1、http://blog.csdn.net/solstice/article/details/2062         2、libpng库的example.c文件 ======*//   一、压缩流程:结合下面的demo。 1、定义png内部表述结构体和png图片信息结构体以及调色板:     png_structp png_ptr;     png_i
使用FFMPEG解码视频之保存成图片
1.首先需要先初始化一下,使用如下函数: 1 av_register_all(); //初始化FFMPEG  调用了这个才能正常适用编码器和解码器 使用这个函数完成编码器和解码器的初始化,只有初始化了编码器和解码器才能正常使用,否则会在打开编解码器的时候失败。 2.接着需要分配一个AVFormatContext,FFMPEG所
最简单的基于FFMPEG的图像编码器(YUV编码为JPEG)
伴随着毕业论文的完成,这两天终于腾出了空闲,又有时间搞搞FFMPEG的研究了。想着之前一直搞的都是FFMPEG解码方面的工作,很少涉及到FFMPEG编码方面的东西,于是打算研究一下FFMPEG的编码。在网上看了一些例子,发现要不然是难度略微有些大,要不然就是类库比较陈旧,于是就决定自己做一个编码方面的例子,方便以后学习。 本文的编码器实现了YUV420P的数据编码为JPEG图片。本着简单的原则,
FFmpeg解码,并转码JPG,png图片
ffmpeg库,对JPG,png图片解码,并转化为YUV420格式
H264文件解析出nalu数据,送给ffmpeg解码,opencv显示
本博客主要是H264的视频码流有ffmpeg 解码后,有opencv先,这里贴出全部代码,你只需自己建个工程,配置一下ffmpeg库和opencv3.0库就好了。 头文件 H264.h#include #include #include #include #include typedef
最简单的基于FFmpeg的内存读写的例子:内存播放器
打算记录两个最简单的FFmpeg进行内存读写的例子。之前的所有有关FFmpeg的例子都是对文件进行操作的。例如《最简单的基于FFmpeg+SDL的视频播放器》播放的是一个视频的文件。而《最简单的基于FFmpeg的转码器》也是将一个视频文件转换为另一个视频文件。《最简单的基于FFmpeg的视频编码器(YUV编码为H.264)》也是最后编码得到一个H.264视频文件。实际上,并不是所有视频的编码,解码
ffmpeg命令行jpg转png出错求助
大家好,我想把jpg图片转成png,命令如下: ffmpeg -i a.jpg a.png 然后ffmpeg显示如下: /usr/local/lib/libavfilter.so.3: symbol sws_isSupportedEndiannessConversion, version LIBSWSCALE_2 not defined in file libswscale.so.2
ffmpeg解码数据保存为yuv格式
ffmpeg解码数据保存为yuv格式: Q_UNUSED(width); Q_UNUSED(height); BroadCastManager *ptr = (BroadCastManager *)receiver; int frame_finished; memset(&ptr->client_info.packet,0,sizeof(p
OpenCv读取与解码内存中的图片及过程中的内存问题
开发中遇到的问题,为了让别人方便也让自己方便,特此记录。 有时候我们会需要读取内存里面的图片,为了提高效率,避免了从硬盘重复读取文件所消耗的时间。 以下是代码: //data为图像再内存中的地址 CvMat mat = cvMat(width, height, CV_8UC1, data);//Read input binary image //第二个参数为fla
需求:ffmepg保存YUV数据jpg文件
利用ffmpeg讲YUV420P数据写入生成.jpg或者png图片。
ffmpeg如何从内存读取或者写流数据
ffmpeg默认的是从网络或者本地文件读取/写入数据很多应用工程中,需要从内存读写数据以加快速度,或者由于操作磁盘权限不够等问题。二 今天来讲讲如何让ffmpeg操作内存在我的其它博客中讲解了从网络读取流数据的过程,这里就先简单补充一下ffmpeg写流数据的过程 avformat_alloc_output_context2(&merge_ctx->output_format_ct...
利用FFmpeg将Jpeg图片转为任意视频容器格式
在一些嵌入式系统中,视频以jpeg图像格式传出来,而且数据量非常大。这种情况下如果要对jpeg图像进行解码并且重新编码成264之类的格式再放入视频容器中会消耗大量的CPU资源,若不是性能特别犀利的CPU是无法承受的,这个时候有一个折衷的办法,就是直接将jpeg连续保存起来(也就是保存成mjpeg视频格式),然后直接放入视频容器中。     这个方面的代码实现网上资料比较少,可以说几乎没有,基本都
ffmpeg(7):将h264编码的视频流保存为BMP或者JPEG图片
一般我们知道播放视频流的时候是有截图功能的。 所以我想是否可以将视频流保存为BMP或者JPEG 参考: 1.最简单的基于FFMPEG的图像编码器(YUV编码为JPEG) http://blog.csdn.net/leixiaohua1020/article/details/25346147 2.  视频帧保存为BMP #define __STDC_CONSTA
FFMPEG之图片系列 --- png格式
ffmpeg中,即支持png格式文件,也支持apng格式文件,下面就这两种区别做一描述: 在libavcodec/allcodecs.c中 定义了png和apng的encoder和decoder. REGISTER_ENCDEC (PNG, png); # ff_png_encoder in libavcodec/pngenc.
如何用FFmpeg读取内存的PS/TS流,分离出视频和音频
    之前做一个项目遇到一个问题:从网络中收到PS/TS流,需要从中分离出视频和音频,但是FFmpeg只支持标准的几种输入流协议(RTP/HTTP/RTSP/MMS),而我们的协议它不支持,所以就不能够用它来直接做接收。那能否由自己来接收数据然后让FFmpeg读取内存中的数据呢?答案当然是可以的,这就需要用到FFmpeg的探测流格式的功能,主要是用到了两个API: avio_alloc_cont...
opengl、ffmpeg内存泄露及混编问题(2017-4-20)
记录备忘(2017-4-20)ffmpega. 从摄像头获取到数据为yuv422格式,通过ffmpeg库函数或者yuyv转rgb的方式来处理数据,然后用opengl显示。直接用ffmpeg的库来转比较方便,各种格式都有,还有缩放等功能不过,注意sws_getContext只能调用一次,在初始化时候调用即可,另外调用完后,在析构函数中使用sws_free_Context,将它的内存释放否则会导致内存
如何用ffmpeg进行Jpeg 或者其它格式图像的扣取
ffmpeg可以截取视频指定时间处的缩略图 截取一张352x240尺寸大小的,格式为jpg的图片:  ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg 把视频的前30帧转换成一个Animated Gif :  ffmpeg -i test.asf -vframes 30 -y -f gif a.gif 在视频的第8
使用FFMpeg解码,opengl渲染,转为图片显示两种方式
使用FFMPeg解码rtsp协议的视屏流,并使用openGL渲染, 1.之前有使用VLC解码但是不能满足需求,后来直接使用FFmpeg解码openGL渲染 2.使用FFMpeg解码这里解决了,解码后不能拿到视屏流多出显示的问题 3.解决了打开首帧视屏比较慢的问题,现在1-2内既能打开视屏 4.解决了找不到pps报警告的问题 5.多线程优化,解码的同时不影响UI的操作更新 解码显示可以转...
使用openCV对JPEG图像内存进行解码及时间过长问题;
unsigned char *m=(unsigned char*)malloc(6000*4000+1000); fread(m,6000*4000+100,1,f); DWORD dTime[3]; dTime[0] =GetTickCount();  for (int i=0;i { CvMat mat = cvMat(10000,10000,CV_8UC1, m); I
ffmpeg 如何探测网络流格式/如何从内存中获取数据
一般ffmpeg都是直接从文件中读取或者从网络流中读取,比如rtp://xx.xx.xx.xx:xxxx。 事实上也支持从内存中获取。 函数avio_alloc_context()实现该功能。AVIOContext *avio_alloc_context( unsigned char *buffer, int buffer
ffmpeg解码aac并重采样
一 谈到音频解码,我们先了解一些基本概念。         声道数目 立体声(stero)单声道(mono)         采样率  单位时间内对音频ad芯片的采样次数,常见的音频采样率有。 0: 96000 Hz1: 88200 Hz2: 64000 Hz3: 48000 Hz4: 44100 Hz5: 32000 Hz6: 24000 Hz7: 22050 Hz8: 16000
如何将jpg等格式的图片转化为yuv
费了好大劲才搞定。下面讲讲方法。 1. 下载ffmpeg
ffmpeg解码内存缓冲区
只贴出部分代码,重在说明过程。 与解码文件的大致过程类似,只不过自定义了AVFormatContext struct IOData { char* data; size_t len; }; int FrVideoAcqHT::io_get_data(void *opaque, uint8_t *buf, int buf_size) {
ffmpeg 接收h264+aac并解码
ffmpeg一直更新所以运行时有些方法和库对应不上,我用的是http://ffmpeg.zeranoe.com/builds/中:ffmpeg-20140305-git-d08bb06-win32-shared和ffmpeg-20140305-git-d08bb06-win32-dev;直接上代码了#include "stdafx.h" #include #include #include
ffmpeg将rgba数据转成png图片
最近在做热区图分析,需要对视频中的一些热区信息产生热区图,并叠加到视频背景图上,主要工作有两部分: 1.分析热区数据,生成rgba数据(本文暂时先不讲具体实现); 2.用ffmepg将rgba数据生成png图(主要讲这部分内容); 具体实现代码如下: bool save_pic(AVFrame *frm, AVPixelFormat pfmt, AVCodecID cid, c
用FFmpeg保存JPEG图片
//函数作用:将解码出来的YUV数据保存成JPG图像 //out_file_name -- JPEG图像保存路径 //w, h -- 图像宽高 //linesize -- 图像的Y分量宽度(一般4字节对齐) //Y, U, V -- 指向图像Y,U,V三个平面的指针 // int EncodeAndSaveJPEG(const char* out_file_name, int w, int h, ...
VC下利用ffmpeg解码播放视频,播放上一帧,下一帧,保存为图片
偶然发现VC下使用ffmpeg解码的资料很少,该工程可实现播放VC下利用ffmpeg解码播放视频,播放上一帧,下一帧,并把每帧保存为图片功能,因为项目最终没有应用上,所以没有完善代码,但大家可以根据自己的需要去修改、完善。
opencv加载内存中的图片数据
经过实践终于找到了 opencv加载内存中的图片数据的方法,现在记录下来。//参数分别为 图片宽度,高度,类型,图片数据指针(unsigned char*) //这个构造函数并没有从新分配内存 CvMat mCvmat = cvMat(w, h, CV_8UC1, mImgData);IplImage* IpImg = cvDecodeImage(&mCvmat, 1);//opencv3.0 Ip
OpenCV图像编码和解码
Posted on 31-08-2013 内存图片二进制数据直接转为 OpenCV 数据格式的方法 Filed Under (技术) by waterlin 在很多应用中,经常会直接把图片的二进制数据进行交换,比如说利用 socket 通信传送图片二进制数据,或者直接用内存数据库(例如 Redis)来传递图片二进制数据。 这个时候,当你的应用程序读到内存里的二进制图片数据
ffmpeg完成YUV到jpeg转换
-
利用ffmpeg将YUV420P转成jpg格式文件,保存
我的程序需要在文件转码的同时去截图,按首祯截图和时间序列截图,但困扰于如何保存成jpg格式。 方案一: 利用ffmpeg将从文件读取出来的祯解码成YUV420P像素格式,用ffmpeg编码成jpg格式 借鉴于雷博士的最简单的基于FFmpeg的图像编码器    连接:http://blog.csdn.net/leixiaohua1020/article/details/25346147 方案
嵌入式 ffmpeg把I帧转成jpg图片以及ffmpeg命令详解
在ubuntu12.04下执行下面的命令得到ffmpeg工具: sudo apt-get install libav-tools //转换视频文件所有的帧到jpg图像 ffmpeg -i /root/test.ts image%d.jpg //转换视频文件第一帧到jpg图像 ffmpeg -i test.ts -y -ss 00:00:00 -vframes 1 test1.jpg f
ffmpeg 自定义数据来源, 可以是文件,可以是内存,可以是网络, 爱咋的咋的
ffmpeg 自定义数据来源, 可以是文件,可以是内存,可以是网络, 爱咋的咋的 // ffmpeg_custom_context.cpp : Defines the entry point for the console application. // #include "stdafx.h" extern "C" { #include };
Jpeglib移植到arm平台 & 修改支持解码内存中的jpeg数据
最近在做图像相关的一些工作,遇到了这样一个问题,就是需要把内存中的jpg数据流转换成只有RGB数据一组数据流(解码内存中的jpeg数据)。很多图像处理工具和开源库都给出了图像解码的函数接口,可是有时这些接口并不能满足我们的需要,就像我遇到的这个问题,就没有这样的接口可以让我们使用。如果将每一帧jpg数据流保存为文件,再用开源库提供的接口去读入文件,这样会浪费时间,特别是在一些嵌入式设备。在网上
利用ffmpeg将yuv转化成png;用ffplay播放yuv文件
ffmpeg -s 1920x1080 -i input.yuv output.png ffplay -f rawvideo -video_size 1920x1080 a.yuv
ffmpeg解码数据转为Mat通过opencv函数显示
/** * 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放 */ #define __STDC_CONSTANT_MACROS #include // Opencv #include #include #include #include extern "C" { #include "libavutil/avutil.h" #include "liba
利用ffmpeg截取视频图像并保存为ppm和jpg图片格式
直接贴出代码:
深入浅出Node.js【深入讲解Node的图书,详细讲述基于JavaScript运行时所建立的平台原理,与mongodb结合操作的具体案例,响应式设计别具匠心的理念,非常有名的Node.js指导指南!】
本书从不同的视角介绍了 Node 内在的特点和结构。由首章Node 介绍为索引,涉及Node的各个方面,主要内容包含模块机制的揭示、异步I/O 实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据Buffer的细节、Node 中的网络编程基础、Node 中的Web 开发、进程间的消息传递、Node 测试以及通过Node构建产品需要的注意事项。*后的附录介绍了Node 的安装、调试、编码规范和NPM 仓库等事宜。 本书适合想深入了解 Node 的人员阅读。
avcodec_decode_video2()解码视频后丢帧的问题解决
使用libav转码视频时发现一个问题:使用下面这段代码解码视频时,视频尾巴上会丢掉几帧。 while(av_read_frame(ifmt_ctx,&packet) >= 0){ ret = avcodec_decode_video2(video_dec_ctx, vframe, &got_frame, &packet); if (got_frame) { pac
Java利用JNI调用FFMpeg对h264码流进行解码
前期配置工作:在Visual Studio端配置FFMpeg在Visual Studio端配置OpenCV解码部分主要源代码及说明解码部分vs工程下载地址使用JNI调用:java端:package com.recon.action; public class Decode { public native String loadfile(String s); //传递字符串告知c++工程所要打开的h
内存数据输出到stdout, ffmpeg如何直接读取stdio
我们知道,ffmpeg可以
opencv从内存读取图片
使用场景: cv_2.4.1/ cpp/linux,我有一内存的文件内存快,是一图片。需要读取到Mat中。 原方案是io保存一次,然后执行imread。后面细想,这个方案要消耗两次IO,很浪费。能否绕过IO的瓶颈呢? 然后我去查CV的文档,有imdecode这样的接口 Reads an image from a buffer in memory. C++: Mat imdecode(In
CUDA 实现JPEG图像解码为RGB数据
了解JPEG数据格式的人应该容易想到,其对图像以8*8像素块大小进行分割压缩的方法很好用并行处理的思想来实现。而事实上英伟达的CUDA自v5.5开始也提供了JPEG编解码的示例。该示例存储在CUDA的SDK中,即CUDA的默认安装路径“C:\ProgramData\NVDIA Corporation\CUDA Samples\v7.0\7_CUDALibraries\jpegNPP”(v后面的
使用FFmpeg把视频转换成JPG格式的图片
程序转载其他博主的,自己稍微加了一些修改,视频源可以使用多种格式,目前测试的MP4,H264视频都可以 #define __STDC_CONSTANT_MACROS #ifdef _WIN32 //Windows extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h"
ffmpeg AVFrame转BMP 或者其他形式转化也可
void CffmpegUIDlg::SaveAsBMP(AVFrame *pFrameRGB, int width, int height, int bpp) { BITMAPFILEHEADER bmpheader; BITMAPINFOHEADER bmpinfo; bmpheader.bfType = 0x4d42; bmpheader.bfReserve
ffmpeg MP3解码
基于ffmpeg的简单Mp3播放器,将pcm存储为文件,重写了文件读取函数,可以解码内存中的数据
opencv 内存中读取一段jpg 图片
FILE* f=fopen("d:\\background_left.jpg","r");     unsigned char *m=(unsigned char*)malloc(1280*720);     fread(m,50000,1,f);     CvMat mat = cvMat(720,1280,CV_8UC1, m);     IplImage *p = c
使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
ffmpeg开源库,实现将bmp格式的图片编码成x264文件。参考资料:http://blog.csdn.net/eightdegree/article/details/7425635#reply  自己根据博客的代码,vs2010搭建的测试环境。资源下载    具体代码:#define _AFXDLL #include #ifdef __cplusplus extern "C" { #e
FFmpeg解码视频保存为一帧帧jpg图片
FFmpeg解码视频把指定时间的图像帧保存为jpg图片,并且可以执行FFmpeg命令。
jpeg 文件转换成yuv
某天接到个任务,要求读取jpeg文件转换成YUV格式,因为从来没有过这样的经历,第一反应上GOOGLE。    刚开始的做法是直接读取jpeg文件读取RGB,然后直接RGB转换成YUV。 但后来同事说jpeg文件本事就是YUV颜色编码,可以直接读取成YUV。于是乎又要开始新的搜索了。     刚开始搜索接触到了jpeglib这个库,大概了解了下jpeglib库和jpeg文件的格式。刚开始直接读
FFMPEG 解码音频
目的通过FFMPEG解码音频的码流,得到PCM的音频采样数据并用AudioTraker播放步骤1.注册所有组件av_register_all(); 2.拿到封装格式上下文AVFormatContext *avFormatContext = avformat_alloc_context(); 3 打开文件 if (avformat_open_input(&avFormatContext, src
如何用ffmpeg解码H.264文件为一帧帧图像
ffmpeg -i my264.264 -r 5 image%3d.png 这个语句就可以将my264.264的视频转换为image001.png、image002.png。如果想输出更多的画面,可以增加-r 参数后面的数字。     ffmpeg也支持将一系列图片转换为一个视频 http://blog.sina.com.cn/s/blog_53b3dc830
ffmpeg 解码H264裸数据
相信很多人在刚接触ffmpeg的时候,想要ffmpeg的api都觉得很比较繁琐,因为本身代码量比较大,模块比较多,api也比较多,而且在ffmpeg中的例程都是以文件的行驶传入到编解码器重的,所以想实现简单的纯数据解码就感觉无从下手了;本文就是描述将一帧完整的H264数据解码为yuyv格式的数据ffmpeg版本:ffmpeg-3.1.2用到的ffmpeg库有:libavformat、libav...
ffmpeg解码audio文件的时候,实现seek功能(即解码指定时间位置的数据
ffmpeg解码的时候,往往需要seek功能,直接跳到所关心的时间位置进行解码。比如制作播放器的时候,可以seek到任意位置播放。 我们可以通过ffmpeg API av_seek_frame()来定位解码的位置,该函数能根据设定的时间,定位到该时间对应的帧位置。随后我们继续使用API av_read_frame()/avcodec_decode_audio3()读取帧、并解码。 需要注意的是
Android FFmpeg工具
FFmpeg解码视频把指定时间的图像帧保存为jpg图片,并且可以执行FFmpeg命令。
基于CUDA的硬编解码
1.硬解码软编码方法:大体流程,先用ffmpeg来读取视频文件的包,接着开启两个线程,一个用于硬解码,一个用于软编码,然后将读取的包传给解码器,编码出的frame download到内存,然后做scale处理,将scale后的帧和编码参数一起传给编码函数,最终生成pkt包,将其写入文件。由于CUVID中CuvideoSource不支持rtsp视频流数据,不能由rtsp地址创建VideoSource
iOS平台使用FFmpeg解码H.264视频流
对于视频文件和rtsp之类的主流视频传输协议,ffmpeg提供avformat_open_input接口,直接将文件路径或URL传入即可打开。读取视频数据解码器初始参数设置等,都可以通过调用API来完成。但是对于h264流,没有任何封装格式,也就无法使用libavformat。所以许多工作需要自己手工完成。这里的h264流指AnnexB,也就是每个nal unit以起始码00 00 00 01
FFmpeg获取网络摄像头数据解码
    对USB摄像头实时编码,在前面已经探讨过了。这次改变下思路,尝试去截取网络摄像头的H264码流,将其解码播放。    这里的测试代码,是在海康摄像头的基础上进行的。    解码的大致流程和以前的保持一致,只不过增加了部分函数。    FFmpeg打开媒体文件并查看媒体文件的信息,有三个步骤:    avformat_open_input;    avformat_find_stream_i...
FFMPEG实现RTSP中数据解码 并且实时播放
FFMPEG实现RTSP中H264数据解码 并且实时播放 具体解释参考https://blog.csdn.net/yunge812/article/details/79709307
利用ffmpeg将H264流 解码为RGB
利用H264解码分为几个步骤: 注意一点在添加头文件的时候要添加extern "C",不然会出现错误[cpp] view plaincopyextern "C"  {  #include   #include   #include   #include   };    这里申明了几个全局变量[cpp] view plaincopyAVCodec         *pCodec = NULL;  A
使用python和ffmpeg 批量将其他图片转换为.yuv格式
转载请注明出处。 由于跑编码的需要,所以需要制作一个.yuv格式的图片数据集,但是手头只有.jpg格式的,故记录下转换过程。其他图片格式也可以,代码里修改一下就行。   ①安装ffmpeg 官网(各种版本):ffmepg官网 window版:https://ffmpeg.zeranoe.com/builds/   ②安装ffmpeg的python3接口ffmpy3 在命令行中输入以...
FFmpeg 编解码错误分析
FFmpeg 编解码错误分析错误代码531 while(av_read_frame(pFormatCtx,&packet)>=0) 532 { 533 if(packet.stream_index==videoStream/*&&packet.flags*/) 使用GDB调试的时候,程序运行到533行,发现了packet.stream_index不等于0的情况,pac
D3D11显示ffmpeg解码出的YUV420P数据
最近在做D3D11的播放器,用来显示ffmpeg解码出来的AVFrame,这里记录下踩过的坑。 坑1:创建纹理缓存时要设置 MipLevels=1 坑2:创建纹理缓存时指定的DXGI_FORMAT_R8_UNORM 和 shader 内 PS 函数获取采样色彩后分量要一致
ffmpeg命令行实现YUV和RGB之间格式的转换
此处仅列举 yuv420 到 rgb24 格式之间的转换,其他格式转换方式与此类似 ffmpeg -s 360x270 -pix_fmt yuv420p -i  2_test_360x270_50.yuv -pix_fmt rgb24  aaaa.rgb
利用ffmpeg把一帧原始视频数据转换成jpg格式的图片
利用ffmpeg对一帧原始的视频数据转换成jpg格式的图片,保存到本地,用于Android显示 #include <jni.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <pthread.h> extern "C" { #include...
4.用ffmpeg把H264数据解码成YUV420P
在网上找了很久这方面的内容,发现网上的代码都太旧了,所使用的函数旧到连最新版本的ffmpeg都已经不包含了,所以对于我这个初学者来说太坑拉。不过经过多次查找ffmpeg的头文件和结合网上的内容,终于成功可以解码拉。现在贴出来。首先是初始化一些参数[cpp] view plaincopy//下面初始化h264解码库  avcodec_init();  av_register_all();    AV...
FFmpeg成功解码mp4为yuv
此工程通过FFmpeg成功把mp4文件解码为yuv:注意导入到eclipse之后要右键Android Tools-->add Native support把工程设置为支持本地代码编译的工程 把sintel.mp4放在根目录下
使用ffmpeg编码和解码aac音频
一、aac音频编码实例#include <stdio.h> #define __STDC_CONSTANT_MACROS #ifdef _WIN32 //Windows extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" }; #else //Linux... #ifdef _...
使用FFmpeg将RGB格式图片或视频转换为YUV格式
VC2008项目打包,使用FFmpeg版本为2.2.2 win32bit /* *将RGB转换为YUV420P * *码术 codemanship *http://blog.csdn.net/codemanship *微信公众号: codemanship *本程序实现了RGB像素数据转换为YUV像素数据 *是最简单的FFmpeg视频编码方面的教程。 *通过学习本例子可以了解FFmpeg的图片格式转换的过程。 */
基于 OpenCL 的 API 自己写一个编解码
基于 OpenCL 的 API 自己写一个编解码
利用FFmpeg将H.264文件读入内存,再输出封装格式文件
/** *先将H.264文件读入内存, *再输出封装格式文件。 */ #include "stdafx.h" #define __STDC_CONSTANT_MACROS extern "C" { #include "libavformat/avformat.h" } #define IO_BUFFER_SIZE 32768 FILE *fp_open; /** *在avform
ffmpeg 接收解码rtp h264视频流
首先说明一下nalu的格式:       nalu由三个部分组成:开始码(0x01000000)+nalu头+nalu数据。 使用live555 testrtspclient那个例子来接收rtp流,接收到的nalu是没有开始码的, 需要自己加上起始码,然后喂个ffmepg的packet.data,然后就可以解码了, 将sps,pps补偿给ffmepg:       在ffmpeg
FFMPEG实现RTSP中H264数据解码 并且实时播放
主要过程和ffmpeg实现视频播放的过程差不多 可以参考:https://blog.csdn.net/yunge812/article/details/79342089 主要改动原始文件的读取 播放器是播放本地文件 而我们这里需要读取的是RTSP中H264数据流 char filepath[1024] = "rtsp://184.72.239.149/vod/mp4://Bi...
使用ffmpeg实现解码并保存为yuv文件
通过ffmpeg实现解码并保存为yuv文件 /** * 抽取ffmpeg中的函数接口实现视频解码并保存 */ #define __STDC_CONSTANT_MACROS #include extern "C" { #include "libavutil/avutil.h" #include "libavcodec/avcodec.h" #include "libavforma
FFmpeg 静图png or jpg加 Gif变Gif图的命令
ffmpeg -y -i img.jpg -vf 'movie=test.gif[wm];[in][wm]overlay=0:0[out]' -loop  0 img_gif.gif //loop参数,0是无限循环,1标示播放一次。
Windows下使用FFMPEG解码视频并保存成图片文件的简单的例子
是一个Windows下使用FFMPEG解码视频并保存成图片文件的简单的例子 FFMPEG的版本是2.5.2 关于代码的解释 请参考: http://blog.yundiantech.com/?log=blog&id=8
ffmpeg】视频编解码ffmpeg命令行工具的常用命令汇总
1、ffmpeg使用语法 命令格式:     ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]     ffmpeg [[options][`-i' input_file]]... {[options] output_file}...     1、参数选项:     (1) -an: 去掉音频     (2) -acodec: 音频选项...
ffmpeg解码流程及解码跟踪和关键问题解析
FFMPEG解码流程 1. 注册所有容器格式和CODEC:av_register_all() 2. 打开文件:av_open_input_file() 3. 从文件中提取流信息:av_find_stream_info() 4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO 5. 查找对应的解码器:avcodec_find_decoder()
FFMPEG+SDL2.0流媒体开发3---简易MP4视频播放器,提取MP4的H264视频序列解码并且显示
简介 之前写了一遍提取MP4中的音视频并且解码,这一篇引入SDL2.0来显示解码后的视频序列 实现一个简易的 视频播放器。 我这里用的FFMPEG和SDL2.0都是最新版的 可能网上的资料不是很多,API接口也变了很多,不过大体的思路还是一样的。 分析几个FFMPEG函数 在这之前我们分析几个代码中可能引起疑问的FFMPEG函数,分别是 av_image_alloc (分
FFMPEG内存操作(一) avio_reading.c 回调读取数据内存解析
在FFMPEG的官方例程中,有个avio_reading.c 的文件,他的主要功能是将音视频文件读取到内存,如果FFMPEG需要使用输入文件的数据,则直接从内存中调用。初学FFMPEG,给avio_reading.c 文件做了一个注释,如果不对,欢迎指正。 /* * Copyright (c) 2014 Stefano Sabatini * * Permission is hereby g
使用libpng把ffmpeg解码后的图像转换为png图片
这里简单介绍一下使用该库进行png压缩转换的代码,以便运用到实际项目中。在libpng-1.6.8的根目录下有一个example.c,其源码如下:#if 0 /* in case someone actually tries to compile this */ /* example.c - an example of using libpng * Last changed in libpng...
ffmpeg封装H264成MP4、AVI视频格式,及提取出png、jpg格式图片
Qt工程,ffmpeg库和h264测试文件。纯原创,仅供交流学习。
ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)
我用的ffmpeg版本为 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有些头文件和API找不到。 在Linux下解压后编译,Linux下编译很简单,我这里生成的动态库: ./configure –enable-shared make 就能找到各个so动态库文件。 移动位置后,记得手动链接 一下:ln -s libavcodec.so.55 libavcodec.so ln -s
libjpeg-turbo使用实例(编解码jpeg、jpg转bmp、bmp转jpg代码)
libjpeg-turbo库用于jpeg图像编解码,上一节说了编译过程:编译libjpeg-turbo 。现在说说jpeg的编码、解码使用方法。 Windows上GDI接口支持的都是位图格式(DDB\DIB)图像,这里只说bmp编码成jpeg格式图片并保存到本地和jpeg解码成bmp格式并保存到本地。 bmp转jpeg int Bmp2Jpeg_Compress(void* lpBmpBuf
我们是很有底线的
关闭
关闭