ffmpeg初始化AVCodecContext avcodec_open()函数问题 [问题点数:40分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Blank
红花 2011年5月 专题开发/技术/项目大版内专家分月排行榜第一
2011年4月 专题开发/技术/项目大版内专家分月排行榜第一
2011年3月 专题开发/技术/项目大版内专家分月排行榜第一
2011年2月 专题开发/技术/项目大版内专家分月排行榜第一
2011年1月 专题开发/技术/项目大版内专家分月排行榜第一
2010年12月 专题开发/技术/项目大版内专家分月排行榜第一
Blank
黄花 2011年11月 专题开发/技术/项目大版内专家分月排行榜第二
2011年8月 专题开发/技术/项目大版内专家分月排行榜第二
Bbs1
本版专家分:0
关于FFMPEG新版本的的问题!!!
安卓项目中要用到FFMPEG,去官网下载了一个最新的版本,122M,下载下来编译成了静态文件,导入到工程中,用NDK编译native的时候提示avcodec_init找不到,一看头文件avcodec.
ffmpegavcodec_open问题(急)
我现在想要解码一个音频文件,前期的parser不是用的<em>ffmpeg</em>的 只是后期的解码器想要用<em>ffmpeg</em>的; 我现在遇到的<em>问题</em>是,每次打开解码器都失败,请教为什么呢? 上代码: // 1. find
FFMPEG结构体分析:AVCodecContext
本文转自: http://blog.csdn.net/leixiaohua1020/article/details/14214859 /* *雷霄骅 *leixiaohua1020@126.com *中国传媒大学/数字电视技术 */ /** * main external API structure. * New fields can be added to the end
ffmpeg 编码器AVCodecContext 的配置参数
转自:http://blog.csdn.net/chance_yin/article/details/16335625 1、先说一些基本的API [cpp] view plaincopy AVFormatContex * pFormatCtxEnc;   AVCodecContext * pCodecCtxEnc;      AV
用AVCodecParameters代替AVCodecContext
在高版本的<em>ffmpeg</em>库中使用AVStream::codec成员时,编译和运行时都出现一堆警告: main.cpp:151: warning: ‘AVStream::codec’ is deprecated (declared at ……\Other_libs\<em>ffmpeg</em>3.2\include/libavformat/avformat.h:893) 和 Using
AVCodecContext解码上下文初始化讲解
<em>ffmpeg</em>是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能nqt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能<em>问题</em>,如何设计封装类,如何处理各种异常情况。
求助:关于FFMPEG中avcodec_open()函数总是返回-1
代码如下:rnrnvoid video_encode_example(const char *filename)rnrn AVCodec *codec;rn AVCodecContext *c= NULL;rn int i, out_size, size, x, y, outbuf_size;rn FILE *f;rn AVFrame *picture;rn uint8_t *outbuf, *picture_buf;rnrn printf("Video encoding\n");rnrn /* find the mpeg1 video encoder */rn codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);rn if (!codec) rn fprintf(stderr, "codec not found\n");rn exit(1);rn rnrn c= avcodec_alloc_context();rn picture= avcodec_alloc_frame();rnrn /* put sample parameters */rn c->bit_rate = 400000;rn /* resolution must be a multiple of two */rn c->width = 352;rn c->height = 288;rn /* frames per second */rn c->time_base.den = 1;rn c->time_base.num = 25;rn c->gop_size = 10; /* emit one intra frame every ten frames */rn c->max_b_frames=1;rn c->pix_fmt = PIX_FMT_YUV420P;rnrn /* open it */rn [color=#FF0000]if (<em>avcodec_open</em>(c, codec) < 0)[/color]/*这个<em>函数</em>总是返回-1*/ rn fprintf(stderr, "could not open codec\n");rn exit(1);rn rnrn f = fopen(filename, "wb");rn if (!f) rn fprintf(stderr, "could not open %s\n", filename);rn exit(1);rn rnrn /* alloc image and output buffer */rn outbuf_size = 100000;rn outbuf = malloc(outbuf_size);rn size = c->width * c->height;rn picture_buf = malloc((size * 3) / 2); /* size for YUV 420 */rnrn picture->data[0] = picture_buf;rn picture->data[1] = picture->data[0] + size;rn picture->data[2] = picture->data[1] + size / 4;rn picture->linesize[0] = c->width;rn picture->linesize[1] = c->width / 2;rn picture->linesize[2] = c->width / 2;rnrn /* encode 1 second of video */rn for(i=0;idata[0][y * picture->linesize[0] + x] = x + y + i * 3;rn rn rnrn /* Cb and Cr */rn for(y=0;yheight/2;y++) rn for(x=0;xwidth/2;x++) rn picture->data[1][y * picture->linesize[1] + x] = 128 + y + i * 2;rn picture->data[2][y * picture->linesize[2] + x] = 64 + x + i * 5;rn rn rnrn /* encode the image */rn out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);rn printf("encoding frame %3d (size=%5d)\n", i, out_size);rn fwrite(outbuf, 1, out_size, f);rn rnrn /* get the delayed frames */rn for(; out_size; i++) rn fflush(stdout);rnrn out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);rn printf("write frame %3d (size=%5d)\n", i, out_size);rn fwrite(outbuf, 1, out_size, f);rn rnrn /* add sequence end code to have a real mpeg file */rn outbuf[0] = 0x00;rn outbuf[1] = 0x00;rn outbuf[2] = 0x01;rn outbuf[3] = 0xb7;rn fwrite(outbuf, 1, 4, f);rn fclose(f);rn free(picture_buf);rn free(outbuf);rnrn avcodec_close(c);rn av_free(c);rn av_free(picture);rn printf("\n");rnrnrnint main(int argc, char **argv)rnrn const char *filename;rnrn /* must be called before using avcodec lib */rn avcodec_init();rnrn /* register all the codecs */rn avcodec_register_all();rnrn if (argc , filename);rnrn return 0;rnrnrn新手,请多多指点啊,调试了半天也找到是什么原因引起的,我用的是FFmpeg-full-SDK-3.2
FFmpeg 初始化
FFmpeg <em>初始化</em>标签(空格分隔): MediaEditor简介在 iOS 使用学习 FFmpeg 相关的笔记 设计到的技术如下: <em>初始化</em> <em>初始化</em>配置 Xcode环境以下内容借鉴了雷晓华博客,但是有些不适用的内容做了修改。下面以Xcode的IOS中的Single View Application为例,记录一下配置步骤: (a) 拷贝文件 FFmpegPackage,包含 include 和和f
avcodec_open出错
当我编码使用CODEC_ID_MPEG1VIDEO和CODEC_ID_MPEG2VIDEO格式时,<em>avcodec_open</em>就出错,使用其他编码格式就没<em>问题</em>,请问为什么?rn下面是AVCodecContext结构的设置。rn pCodecCtxEnc=avcodec_alloc_context();rn pCodecCtxEnc = video_st->codec;rn pCodecCtxEnc->codec_id = CODEC_ID_MPEG1VIDEO;rn pCodecCtxEnc->codec_type = pCodecCtxDec->codec_type;rnrn //设置视频码率rn pCodecCtxEnc->bit_rate = pCodecCtxDec->bit_rate;rn // 分辨率 rn pCodecCtxEnc->width = pCodecCtxDec->width;rn pCodecCtxEnc->height = pCodecCtxDec->height;rn // 帧率rn pCodecCtxEnc->time_base.den = pCodecCtxDec->time_base.den;rn pCodecCtxEnc->time_base.num = pCodecCtxDec->time_base.num;rn pCodecCtxEnc->pix_fmt = PIX_FMT_YUV420P; //图像格式rn pCodecCtxEnc->gop_size = pCodecCtxDec->gop_size; /* 一组图片多少副图 */rn// pCodecCtxEnc->max_b_frames =1 ;rnrn if (pCodecCtxEnc->codec_id == CODEC_ID_MPEG2VIDEO) rn rn rn pCodecCtxEnc->max_b_frames = 2;rn rn if (pCodecCtxEnc->codec_id == CODEC_ID_MPEG1VIDEO)rn rn rn pCodecCtxEnc->mb_decision=2;rn rn rn if(!strcmp(pFormatCtxEnc->oformat->name, "mp4") || !strcmp(pFormatCtxEnc->oformat->name, "mov") || !strcmp(pFormatCtxEnc->oformat->name, "3gp"))rn pCodecCtxEnc->flags |= CODEC_FLAG_GLOBAL_HEADER;rnrn麻烦各位帮我看看<em>问题</em>出在哪里!
ffmpeg——url初始化
URLContext中是对具体资源文件进行操作的上下文,URLProtocol则是在将资源进行分类的基础上,对某一类资源操作的<em>函数</em>集。 typedef struct URLContext { const AVClass *av_class; /**&amp;lt; information for av_log(). Set by url_open(). */ const struc...
FFmpeg - 新老接口对比问题
为了解决大家的头痛的<em>问题</em>,特列一个贴子,把<em>ffmpeg</em>相关的一些常见的、版本的<em>问题</em>列举出来,供大家参考,同时也请大家一起补充。1) 不认识guess_format. 解决: #define guess_format av_guess_format 接口不变。2) 不认识av_alloc_format_context 解决: #define av_alloc_format_conte
ffmpeg结构体以及函数介绍
转自:http://blog.chinaunix.net/uid-20718335-id-3024436.html 本文对在使用<em>ffmpeg</em>进行音视频编解码时使用到的一些<em>函数</em>做一个简单介绍,我当前使用的<em>ffmpeg</em>版本为:0.8.5,因为本人发现在不同的版本中,有些<em>函数</em>名称会有点小改动,所以在此有必要说明下<em>ffmpeg</em>的版本号。     <em>ffmpeg</em>本人也是刚接触,本文将采用累加的方法逐个介绍
ffmpeg 源代码简单分析 : avcodec_register_all()
本文分析一下<em>ffmpeg</em>注册编解码器等的<em>函数</em>avcodec_register_all()(注意不是av_register_all(),那是注册所有东西的)。该<em>函数</em>在所有基于<em>ffmpeg</em>的应用程序中几乎都是第一个被调用的。只有调用了该<em>函数</em>,才能使用编解码器等。 之前已经写过一篇文章了: <em>ffmpeg</em> 源代码简单分析 : av_register_all() 其实注册编解码器和注册复用器解复用
ffmpeg avcodec_open2问题
-
FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
本文简单分析FFmpeg常见结构体的<em>初始化</em>和销毁<em>函数</em>的源代码。常见的结构体在文章:《FFMPEG中最关键的结构体之间的关系》中已经有过叙述,包括:AVFormatContext:统领全局的基本结构体。主要用于处理封装格式(FLV/MKV/RMVB等)。AVIOContext:输入输出对应的结构体,用于输入输出(读写文件,RTMP协议等)。AVStream,AVCodecContext:视音频流对应
关于amr_nb编码器avcodec_open失败的问题
我用0.5的版本编译了libamr_nb和libamr_wb这两个编解码器,但是当我在程序里面用的时候,我首先用avcodec_find_encode能够找到amr_nb编码器,但是执行<em>avcodec_open</em>的时候就返回-1,需要我把源代码贴出来吗? rn我觉得外部库编译进去了就应该和内部的编解码器的使用流程是一样的,但为什么我的程序老是出错呢,之前没有把amr编译进去的时候avcodec_find_encoder就会返回-1,也就是找不到,这个我明白,但为什么我添加上了amr的编译选项编译出来的库avcodec_find_encoder能找到CODEC_ID_AMR_NB这个编码器但<em>avcodec_open</em>却总是返回-1也就是失败,难道我的库有<em>问题</em>吗?但是我编译时正常通过的,而且我用<em>ffmpeg</em> full sdk 3.0这个库来编译我的程序,也是在<em>avcodec_open</em>失败,难道是我的程序有<em>问题</em>吗?但是我如果用mp2这个内部的编码器却能正常运行。rn希望各位能帮我解答疑问。。。
AVCodecContext解码上下文初始化讲解和视频解码器打开的代码演示
课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和http网络视频的播放,支持访问本地的视频文件,并精确显示和控制播放进度:rn1讲解如何编译Android平台的<em>ffmpeg</em>库,使其支持neon技术和硬解码,并测试性能rn2使用opengles的NDK shader高效播放yuv视频,不耗费cpu性能更优(GPU)rn3代码支持硬解码(省电不耗cpu)和多线程解码(高性能每秒解码240帧1080p)rn4支持网络流媒体(rtmp,rtsp,http)可直接拉流播放电视并支持rtsp摄像头访问rn5课程将设计模式应用到实践 - 观察者,构建者,门面,代理,适配器,单件模式
函数初始化问题
testPalindrome是求回文的<em>函数</em>,可是这个程序在编译是却出现了出错信息rnrn31.c:3: error: expected expression before ‘int’rn31.c:3: error: expected ‘;’, ‘,’ or ‘)’ before ‘char’rn31.c:21: error: expected expression before ‘int’rn31.c:21: error: expected ‘;’, ‘,’ or ‘)’ before ‘char’rnrn其中3和21行均为<em>函数</em>定义的部分,检查了半天也没有想去是哪里出错了,希望有人能帮助我,谢谢了rn[code=C/C++]rn#include rnrnint testPalindrome(char abc[int ini],char abc[int maxnum]);rnrnint main ()rnrn char string[20];rn int i=0,max,n=0;rn printf("the phrase is :");rn scanf("%s",string);rn while(string[n]!='\0')rn n++;rn rn max=n-1;rn testPalindrome(string[i],string[max]);rn if(testPalindrome(string[i],string[max]))rn printf("the phrase is palindrome");rn elsern printf("the phrase is not palindrome");rnrnint testPalindrome(char abc[int ini],char abc[int maxnum])rnrn while(ini<=maxnum&&abc[ini]==abc[maxnum])rn return testPalindrome(abc[ini++],abc[maxnum++]);rn rn if(ini==max&&abc[ini]==abc[maxnum])rn return 1;rn rn elsern return 0;rnrn[/code]
函数内部初始化问题
void test()rnrnrnrn
函数初始化 问题
class Vehicle rn rnpublic: rnVehicle(float speed,int total) rn rnVehicle::speed = speed; rnVehicle::total = total; rn rnrnrnclass Car:public Vehicle rn rnpublic: rnCar(int aird,float speed,int total):Vehicle(speed,total) rn rnCar::aird = aird; rn rnrn请问上面的 Car <em>函数</em> 后面 跟 :Vehicle(speed,total) 是什么意思 ? 谢谢 !rnrn
请问怎么样初始化AVCodec?
我的音频是通过mpeg4aac编码,但发现在调用avcodec_decode_audio之前的AVCodec如果是按照apiexample的没<em>初始化</em>的话,那调用avcodec_decode_audio
ffmpeg 新版本avcodec_send_packet 和avcodec_receive_frame实现解码
<em>ffmpeg</em>解码现在完全放在后台去做了,现在分为2个步骤 avcodec_send_packet 发送数据到ffmepg,放到解码队列中 avcodec_receive_frame 将成功的解码队列中取出1个frame int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpacket) avpacket ...
一个初始化函数问题
听说vb没有构造<em>函数</em>,但有<em>初始化</em><em>函数</em>rn是不是指的是Private Sub Class_Initialize()rn这个东西呢?这个到底在什么时候调用的啊,我在里面写了一句MesBox"test"rn可就是不会调用到啊rnrn还有一个<em>问题</em>,我想建一个自己的数组类要用到带参数的构造<em>函数</em>rn像这样rnDim test(10) As New MyAarryrn怎么实现啊?rn
函数初始化
请问一般的类成员<em>函数</em>能用参数<em>初始化</em>表对数据成员进行<em>初始化</em>吗?rn 如void Circle ::setRadius(float):radius(r) 可以这样定义吗?
函数初始化
先看代码 class Parent { int i = 1; Parent() { System.out.println(i); int x = getValue(); System.out.println(x); } { i = 2; }//这个叫构造块 protected int g...
AVStream和AVCodecContext中的time_base的区别
[img=https://img-bbs.csdn.net/upload/201305/06/1367808553_679871.jpg][/img]rnrn看上面这个图,是我调试时候的截图rnrnrnrn视频rnAVStream的time_basern1/25rnAVCodecContext的time_basern1/50rnrn音频rnAVStream的time_basern32/1225rnAVCodecContext的time_base, 这个应该是音频采样率rn1/44100rnrn二者的值肯定是不一样的,rn我看到很多做音视频的同步的会使用pts*AVStream的time_basernrn我想是不是这样,正常音频采用率是44100,就是每隔1/44100秒采一个包,我们称之为小包rn但是<em>ffmpeg</em> av_read_frame 读出来的AVPakcet 是一个大包,里面包含了很多个小包rn而这个小包的数量我猜就是 (32/1225) / (1/44100)rn所以有两种time_basernrn不知道这样理解是否正确呢
avcodec_open打开H264编码器错误
<em>avcodec_open</em>打开H264编码器错误,代码如下:rnif (pSelf->oVcc->codec_id == CODEC_ID_H264) rn rn pSelf->oVc=avcodec_find_encoder(CODEC_ID_H264); rn pSelf->oVcc->me_range = pSelf->vCodecCtx->me_range; rn pSelf->oVcc->max_qdiff = pSelf->vCodecCtx->max_qdiff; rn pSelf->oVcc->qmin = pSelf->vCodecCtx->qmin; rn pSelf->oVcc->qmax = pSelf->vCodecCtx->qmax; rn pSelf->oVcc->qcompress =pSelf->vCodecCtx->qcompress; rn pSelf->oVcc->keyint_min=pSelf->vCodecCtx->keyint_min; rnrn rn请问这几个参数该如何设置?谢谢!
ffmpeg重要结构体之AVCodecContext
结构体AVCodecContext位于文件libavcodec/avcodec.h中,是有关编解码的结构体。 typedef struct AVCodecContext { /** * information on struct for av_log * - set by avcodec_alloc_context3 */ const AVClass
关于FFmpeg自定义AVCodecContext的参数设置
在使用<em>ffmpeg</em>解码时,常用的流程都是: avformat_open_input avformat_find_stream_info AVFormatContext *fc; 然后通过:fc->st
FFmpeg:AVCodecContext结构体解析
文档:传送门 AVCodecContext AVCodecContext也是FFmpeg使用过程中比较重要的结构体,保存了编解码器上下文相关信息。不管是编码,还是解码都会用到,但在两种不同应用场景中,结构体中部分字段作用和表现并不一致,这一点需要特别注意。 AVFormatContext包含了一个媒体流的解码器的上下文信息,比较重要的有: AVMediaType:解码器类型,表示这个解码器是用来...
ffmpeg常用结构体及函数
libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议,为 libavcodec 分析码流提供独立的音频或视频码流源。 libavcodec:用于各种类型声音/图像编解码;该库是音视频编解码核心,实现了市面上可见的绝大部分解码器的功能,libavcodec 库被其他各大解码器 ffdshow,Mplayer
关于双向链表初始化函数问题
初学c语言,现在正在做双向链表的<em>初始化</em>链表的一个测试代码,这里边有<em>问题</em>,我不知道该怎么改。rn不知道有谁能帮我分析一下。rnrn下为代码部分rn_______________________________________________________________________________rn[code=C/C++]rnrnrn#include rn#include rntypedef struct Link_nodernrn int data;rn struct Link_node *before;rn struct Link_node *next;rnLink_node;rnrnstruct Link_node *head=NULL;rnrnrnLink_node *Init_List(void);rnLink_node *Init_List()rnrn int i;rn Link_node *temp, *last;rn head = (Link_node *) malloc (sizeof(Link_node));rn rn head->next=head;rn head->before=head;rn temp = head;rn last->next=head;rn for(i=0;idata));rn temp->next=temp;rn temp->before=temp;rn rn elsern rn rn printf("read No. %d number,please type in", i);rn scanf("%d",&(temp->data));rn last = temp->before;rn last->next= temp;rn temp->next= head;rn last = temp;rn rn rn rn return(head);rnrnrnrn rnint main()rn rn Init_List();rn printf("regular order:");rnrn printf("%d", head->data);rn printf("%d", head->next->data);rn printf("%d", head->next->next->data);rn printf("%d", head->next->next->next->data);rn printf("%d", head->next->next->next->next->data);rn rn printf("reverse order:");rn printf("%d", head->before->data);rn printf("%d", head->before->before->data);rn printf("%d", head->before->before->before->data);rn printf("%d", head->before->before->before->before->data);rn printf("%d", head->before->before->before->before->before->data);rn system("pause");rn return 0;rnrn[/code]
对话框初始化函数OnInitDialog()问题
在下面的一段<em>函数</em>里,是对话框的初始部分,todo 后面的是自己写的部分,有什么办法先把对话框显示出来,然后再执行todo后面的程序段,再更新原来的对话框。rnrn如果全部代码都在OnInitDialog里面怎么写?rnrn如果不在又可以怎么写?rnrnCDialog::OnInitDialog();rnrn // Add "About..." menu item to system menu.rnrn // IDM_ABOUTBOX must be in the system command range.rn ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);rn ASSERT(IDM_ABOUTBOX < 0xF000);rnrn CMenu* pSysMenu = GetSystemMenu(FALSE);rn if (pSysMenu != NULL)rn rn CString strAboutMenu;rn strAboutMenu.LoadString(IDS_ABOUTBOX);rn if (!strAboutMenu.IsEmpty())rn rn pSysMenu->AppendMenu(MF_SEPARATOR);rn pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);rn rn rnrn // Set the icon for this dialog. The framework does this automaticallyrn // when the application's main window is not a dialogrn SetIcon(m_hIcon, TRUE); // Set big iconrn SetIcon(m_hIcon, FALSE); // Set small iconrn rn // TODO: Add extra initialization herern
memset函数与二维数组初始化问题
今天在编写Levenshtein distance距离<em>函数</em>时用到二维数组,用memset对其<em>初始化</em>时发生了<em>问题</em>,直接代码: int** m = NULL; int i = 0,j = 0; m = (int**)malloc(row * sizeof(int)); for (i = 0;i < row; i++) { m[i] = (int*)malloc(col * sizeo
关于函数初始化变量的问题
function t()rn $age=5;rn $age+=1;rnrn return $age;rnrnecho t()." ";rnecho t()." ";rnecho t()." ";rn结果是:666rn不懂 视屏的解释是:rn每调用一次t<em>函数</em> t<em>函数</em>就要<em>初始化</em>$age=5 因此666<em>函数</em>就是封装的执行体,前后执行,没有联系,这是正常的rnrnrn可我还是不懂- -,第一次调用,是在栈区开辟一个内存执行里面的代码,然后 $age=5;$age+=1;return $age;得到结果,第二次调用,这个$age=6去哪了?是不是调用结束后<em>函数</em>占用的内存就释放了,$age不存在了?第二次调用又开辟一个内存??rn请大神详细点
ffmpeg AVCodec 和 AVCodecContext 用法
AVCodec avcodec_register_all 注册解码器 AVCodec *avcodec_find_decoder(enum AVCodecID id) <em>初始化</em> 解码器 AVCodec *avcodec_find_decoder_by_name(const char *name) 通过名字来查找解码器。andoird cpu中集成有专门处理音视频的部分,且只提供了java的接...
h264手动添加sps和pps到AVCodecContext->extradata
最近编码的时候发现生成的视频不能用Windows Media Player等系统自带的播放器播放,也没有缩略图。找了很久,最后才发现添加一行代码就行了: codec_ctx-&gt;flags |= AV_CODEC_FLAG_GLOBAL_HEADER; 调用该行代码后,FFmpeg会在调用<em>avcodec_open</em>2里,在写header时填充sps,pps等信息。不填充编码出来的视频就不能正常
FFmpeg函数说明文档
国外开发的视频处理开发包FFmpeg的各个<em>函数</em>说明文档-Developed abroad FFmpeg video processing development kit documentation of all function
FFmpeg函数记录2
1.av_image_alloc指定一张图片的大小(宽w、高h),像素格式(pix_fmt),填补相应的指针和线宽.int av_image_alloc(uint8_t *pointers[4], int linesizes[4], int w, int h, enum AVPixelFormat pix_fmt, int align);例子: AVFrame *frameVideoOut = ...
ffmpeg函数封装
static int open_input_file_and_get_contexts(const char* input_file_name,            AVFormatContext** input_format_context,            AVCodecContext** input_video_codec_context,            AVCodec
FFmpeg的一些结构与函数
libavcodec 下的avcodec.h AVCodecID: enum AVCodecID { AV_CODEC_ID_NONE, /* video codecs */ AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video de
FFMPEG结构和函数介绍
FFMPEG 解码流程方法和FFMPEG 中用到的各种方法介绍
ffmpeg中AVCodecContext等数据结构中extradata成员的数据格式及其设置
1、引用AVCodecContext中对该数据成员的解释 /** * some codecs need / can use extradata like Huffman tables. * MJPEG: Huffman tables * rv10: additional flags * MPEG-4: global headers (they can be
AVCodecContext
先占坑 待续。。。。。。。。。
AVCodecContext结构体
typedef struct AVCodecContext { int bit_rate; int frame_number; //扩展数据,如mov格式中audio trak中aac格式中esds的附加解码信息。 unsigned char *extradata; //扩展数据的size int extradata_size; //视频的原始的宽度与高度 int width
FMpeg分析5:AVCodecContext和AVCodec
他们之间的关系和URLProtocol、URLContext之间是一样的,AVCodecContext动态的记录一个解码器的上下文信息,而AVCodec是每个解码器都会拥有一个自己的静态对像,并通过avcodec_register()<em>函数</em>注册成一个链表,表头在utils.c里定义 static AVCodec *first_avcodec = NULL; AVCodecContext的
FFmpeg函数记录1
1.为AVFrame重新分配空间 int av_frame_get_buffer(AVFrame *frame, int align);align指位深度。2.取消引用的所有缓冲区并重置AVFramevoid av_frame_unref(AVFrame *frame);3.复制图片平面void av_image_copy_plane(uint8_t       *dst, int dst_lin...
FFmpeg部分函数解析
> 处理音频和视频的基本流程: 基本上来说,处理视频和音频流是很容易的:(瞎扯。。。) 10 从 video.avi 文件中打开视频流 video_stream 20 从视频流中读取包到帧中 30 如果这个帧还不完整,跳到 20 40 对这个帧进行一些操作 50 跳回到 20 1)av_register_all() <em>ffmpeg</em>注册复用器,编码器等的<em>函数</em>av
ffmpeg解码函数简介
<em>ffmpeg</em>解码<em>函数</em>简介 1】av_register_all() :注册所有组件 2】avformat_input() :打开输入视频文件。 3】avformat_find_stream_info() :获取视频文件信息。 4】avcodec_find_decoder():查找解码器 5】<em>avcodec_open</em>2():打开解码器 6】av_read_frame():从输入文件读取一帧...
ffmpeg av_seek_frame 函数使用
需要做到对视频一秒解码一次,想通过av_seek_frame循环定位到视频每一秒的时刻再解码,在网上查找资料时候发现别人调用代码 rn err = av_seek_frame(pCtx, opt.streamId, opt.lstart, AVSEEK_FLAG_ANY);rn代码中opt.lstart是人为输入的一个时间点,可是对这个时间点我不是很清楚,是以什么作为基准的?就是视频的多少分多少秒还是和什么时间戳有关系?这个没搞懂,rn求指教
ffmpeg编码关键函数
 size = avcodec_encode_video2(pCodecCtx, &amp;amp;avpkt, yuv420pframe, &amp;amp;frameFinished);https://blog.csdn.net/zh_ang_hua/article/details/47276357              glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, da...
FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)
AVCodecContext  这是一个描述编解码器上下文的数据结构,包含了众多编解码器需要的参数信息  如果是单纯使用libavcodec,这部分信息需要调用者进行<em>初始化</em>;如果是使用整个FFMPEG库,这部分信息在调用 av_open_input_file和av_find_stream_info的过程中根据文件的头信息及媒体流内的头部信息完成<em>初始化</em>。其中几个主要 域的释义如下:
ffmpeg+x264编码,AVCodecContext的gop_size与max_b_frames设置无效,求解决方案
如题。 小弟分别试过自行编译<em>ffmpeg</em>0.8.1+x264(116版本)和直接使用从上下载的<em>ffmpeg</em>-0.8-win32-shared.7z(x264为115版) 修改muxing-exampl
FFMPEG结构体分析:AVCodec
注:写了一系列的结构体的分析的文章,在这里列一个列表: FFMPEG结构体分析:AVFrame FFMPEG结构体分析:AVFormatContext FFMPEG结构体分析:AVCodecContext FFMPEG结构体分析:AVIOContext FFMPEG结构体分析:AVCodec FFMPEG结构体
ffmpeg函数使用
<em>ffmpeg</em><em>函数</em>使用 <em>ffmpeg</em><em>函数</em>使用 <em>ffmpeg</em><em>函数</em>使用 <em>ffmpeg</em><em>函数</em>使用 <em>ffmpeg</em><em>函数</em>使用
完成ffmpeg初始化、输出上下文初始化和关闭清理接口
本课程讲解的是基于流行的直播技术 FFMpeg3.3音视频处理框架,和应用广的c++跨平台的QT5库(主要用作界面)。开发的一个完整的屏幕录像机项目,包含桌面录制(基于 QT(跨平台),directx(高效)),话筒录制,音视频h264编码,MP4封装。QT圆角边框界面。rn开发工具基于vs2015,但同样适用于vs更高版本。
ffmpeg中av_seek_frame函数问题请教
用av_seek_frame这个<em>函数</em>定位到我想要的某个时间,但是每次都不能准确定位,我是想保存下来12s~15s之间的所有帧rn [size=11px]int starttime=12;rn [size=16px]int endtime=15;rn int target_start=starttime*AV_TIME_BASE;rn int64_t seek_start=av_rescale_q(target_start, bqTimebase, timebase);rn seek_start+=pFormatCtx->streams[videoStream]->start_time;rn int target_end=endtime*AV_TIME_BASE;rn int64_t seek_end=av_rescale_q(target_end, bqTimebase, timebase);rnrn ……rn ……rnrn res=av_seek_frame(pFormatCtx, videoStream, seek_start, AVSEEK_FLAG_BACKWARD );rn avcodec_flush_buffers(pFormatCtx->streams[videoStream]->codec);rnrn rn 在定位到我想要的帧之前的关键帧之后,用pts要判断是不是已经到达我想要的时间位置,直到超出我设定的endtime,同时将这中间的所有帧保存下来rn rnrn不知道是哪里设置错误,总是不能达到预想的效果,pts变化也蛮奇怪的,请问有没有人直到个中原委,赐教一下吧~~~~rn
ffmpeg的avcodec_decode_video 函数解码时间戳问题
在 VLC 中调用 avcodec_decode_video() <em>函数</em>进行解码时,AVFrame->pts 时间戳不对,导致我的图像不能够显示?rnrn请问有谁知道它的解码原理,这个 PTS 怎么得出的吗?还是外部传入的?
ffmpeg初始化文件头信息时
if(ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)            o_video_stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; 要将其头设上flags,不然会导致AVStream的priv_pts不存在。还有X264编码时,你会发现总是少了前面几秒的,那个要在循环体结束后重新再接。
FFmpeg源代码简单分析:avcodec_close()
本文简单分析FFmpeg的avcodec_close()<em>函数</em>。该<em>函数</em>用于关闭编码器。
FFmpeg源代码简单分析:avcodec_open2()
===================================================== FFmpeg的库<em>函数</em>源代码分析文章列表: 【架构图】 FFmpeg源代码结构图 - 解码 FFmpeg源代码结构图 - 编码 【通用】 FFmpeg 源代码简单分析:av_register_all() FFmpeg 源代码简单分析:avcodec_r
FFMPeg代码分析:AVCodecContext结构体
在调用avformat_open_input打开文件后,下一步调用av_find_stream_info<em>函数</em>从文件中读取音视频流的信息,而后AVFormatContext的结构体将会将这些信息保存在其中。在找到AVFormatContext的视频stream后,获取其codec保存到指向AVCodecContext的指针: // Find the first video stream for
【FFmpeg(2016)】AVCodecContext解码网络流
【前言】 一般读取视音频文件解码时,我们会使用AVFormatContext。 【对比】 简单记录一下这个只使用libavcodec的“纯净版”视频解码器和使用libavcodec+libavformat的视频解码器的不同。 (1)下列与libavformat相关的<em>函数</em>在“纯净版”视频解码器中都不存在。 av_register_all():注册所有的编解码
FFmpeg总结(三)AV系列结构体之AVCodecContext
位置: libavcodec/avcodec.h 描述:主要扩展API的结构体New fields can be added to the end with minor version bumps.
ffmpeg之如何获得一个媒体文件的AVStream,并从该基础上获得AVCodec,AVCodecContext
#include #include extern "C"{ #include #include #include } #pragma comment(lib,"avcodec.lib") #pragma comment(lib,"avutil.lib") #pragma comment(lib,"avformat.lib") int main(int
ffmpeg问题
刚用<em>ffmpeg</em> 请问可以将音视频流存储为MP4文件吗? rn具体该怎么做?我找了好些资料,主要是讲编码解码的。 <em>ffmpeg</em>是否就是一个相当于dll的一个东西,有很多库<em>函数</em>可以调用?
ffmpeg问题
使用<em>ffmpeg</em>解码视频播放时,右侧会出现色条,也不是所有的视频都是这样,目前发现有些100*40的视频会有这种情况,如果解码时倍数放大,显示时又没有这种情况,遇到这种<em>问题</em>很费解。rn程序主要代码如下:rn // 【1】rn int size = av_image_get_buffer_size(AV_PIX_FMT_RGB24, dst_width, dst_height,1);rn imagedata = (unsigned char *)av_malloc(size);rn av_image_fill_arrays(framergb->data, framergb->linesize,imagedata,rn AV_PIX_FMT_RGB24, dst_width, dst_height, 1);rnrn img_convert_ctx = sws_getContext(src_width, src_height, codecontext->pix_fmt,rn dst_width, dst_height, AV_PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL, NULL, NULL);rnrn // 【2】rn sws_scale(img_convert_ctx, (const uint8_t* const*)frame->data, frame->linesize, 0,rn src_height, framergb->data, framergb->linesize);rnrn这是视频的一些信息rn[img=https://img-bbs.csdn.net/upload/201804/28/1524899333_636737.jpg][/img]rn这是播放的画面(很小,与视频宽度高度大小相同),会发现右侧出现不同颜色的色条,用电脑播放器播放就没发现这个<em>问题</em>rn[img=https://img-bbs.csdn.net/upload/201804/28/1524900293_330515.png][/img]rnrn谢谢大家帮忙解答
ffmpeg问题!!!
菜鸟<em>问题</em>,我想用<em>ffmpeg</em>(只想用它)转换一个.ts的文件为flv,但苦于我没有他的音频解码器,所以现在暂且只能转换他的视频文件,请问如何只转换视频????rn还有,有什么好的软件可以查看媒体文件的音频类型吗??(我的文件音频好像是高品位的acc)。rn[color=#FF0000][b]在线等!!![/b][/color]
初始化解码器失败
对DVR进行二次开发时,出现<em>初始化</em>解码器失败,是什么原因呢?
讯飞离线语音识别使用出现初始化失败的解决方法
原因是并未使用 SpeechUtility.createUtility(this, param.toString());<em>函数</em>来<em>初始化</em>sdk权限,在使用听写功能之前调用该<em>函数</em>即可。
FFmpeg avcodec_copy_context deprecated替换方案
新版本中FFmpeg的avcodec_copy_context被avcodec_parameters_to_context和avcodec_parameters_from_context所替代,因此需要将原本的写法修改一下。 旧API版本如下 ret = avcodec_copy_context(out_stream-&amp;gt;codec, in_stream-&amp;gt;codec); if (...
FFMPEG音视频同步-音视频实时采集并编码推流
FFMPEG读取实时音视频并编码推流 //------------------------------------------------------------------------------------------------- 参考链接1、https://blog.csdn.net/leixiaohua1020/article/details/39702113 参考链接2、https:/...
ffmpeg开发指南
感谢作者:http://blog.csdn.net/byxdaz/article/details/7316304 FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Ma
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
freescale单片机初始化函数
freescale单片机内部各个模块的<em>初始化</em><em>函数</em>集合,以及详细的中文注释
wince6—创建初始化函数
在给控件添加类以后我没有在文件中找到有<em>初始化</em>的<em>函数</em>,由于是初学,很多东西不太懂,整了好久才弄明白怎么添加<em>初始化</em><em>函数</em>OnInitDialog()
swift初始化函数失败
1、编译器提升出错: 'required' initializer 'init(coder:)' must be provided by subclass of 'UITabBarController' 2、原因分析    1,在 Swift 中, 类的<em>初始化</em>器有两种, 分别是Designated Initializer(指定<em>初始化</em>器)和Convenience Initializer
ffmpeg avcodec_open2有时打开成功,有时失败
AVCodecContext *c; c->bit_rate = 400000; c->width = width; c->height = height; c->time_base = avRate
avcodec_open(pCodecCtx, pCodec
pCodec=avcodec_find_decoder(pCodecCtx->codec_id); if(pCodec==NULL) {fprintf(stderr, ”Unsupported codec!\n”); return -1;  // Codec not found } // Open codec if(<em>avcodec_open</em>(pCodecCtx, pCodec) 因为
ffmpeg学习六:avcodec_open2函数源码分析
上一节我们尝试分析了avformat_open_input<em>函数</em>的源码,这个<em>函数</em>的虽然比较复杂,但是它基本是围绕着创建和<em>初始化</em>一些数据结构来展开的,比如,avformat_open_input<em>函数</em>会创建和<em>初始化</em>AVFormatContext,AVClass ,AVOption,URLContext,URLProtocol ,AVInputFormat ,AVStream等数据结构,这些数据结构的关系如
ffmpegavcodec_open失败的问题(急)
求助大神, FFmpeg音频解码,使用官网完整库,三种格式CODEC_ID_ADPCM_IMA_WAV、CODEC_ID_PCM_ALAW、CODEC_ID_AAC,只有CODEC_ID_AAC能够打
VC++ 屏幕录像程序下载
一个功能强大的屏幕录像程序,但是没有声音. 相关下载链接:[url=//download.csdn.net/download/ujkl88/3208796?utm_source=bbsseo]//download.csdn.net/download/ujkl88/3208796?utm_source=bbsseo[/url]
CJ1CS1指令下载
欧姆龙CJCS系列指令,全中文版,希望对大家有些用处 相关下载链接:[url=//download.csdn.net/download/jasebary/3734615?utm_source=bbsseo]//download.csdn.net/download/jasebary/3734615?utm_source=bbsseo[/url]
项目管理习题集下载
项目管理的习题集讲解各章节主要的可能被考到的习题 相关下载链接:[url=//download.csdn.net/download/lantian122/4407566?utm_source=bbsseo]//download.csdn.net/download/lantian122/4407566?utm_source=bbsseo[/url]
我们是很有底线的