仓库代码:https://gitee.com/liudegui/ffmpeg_decode_videoffmpeg_decode_video使用ffmpeg解码video模块,支持3种解码:cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码封装库只依赖ffmpeg,测试程序中用到了OpenCV,可用于将帧送往opencv检测程序ref:https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/hw_decode.cref:https://github.com/chinahbcq/ffmpeg_hw_decode概要该库希
我编写了用于解码许多.flv视频文件的代码。每个视频文件都由一个单独的线程解码。当我尝试1个线程时,一切正常。但是当我尝试超过2个线程时,总是会出现错误“avcodec_open/close()周围的线程锁定不足”。我已经搜索过,我知道函数avcodec_open()和avcodec_close()不是线程安全的。之后,我将互斥锁放在调用两个函数的任何地方。lockObj.Lock();avcodec_open/close();lockObj.UnLock();但是“avcodec_open/close()周围线程锁定不足”的错误仍然发生。谁能告诉我解决办法?非常感谢,大统华
我在这里很陌生,但我听说如果您想回答问题,stackoverflow是提问的地方>.所以...最近几天我一直在摆弄opengl之类的东西,想写一个视频播放器。但是,当我尝试导入ffmpeg库(avcodec、avformat、avutils等)时,运行时发生错误(程序编译正常)。在Debug模式下编译和运行时,错误消息只给我一个内存地址和错误代码135(未找到DLL)。当我在我的代码中包含这些库中的函数(例如av_register_all())时会发生此错误,并且无论该函数是否实际被调用都会发生。所以我认为我在链接这些库时做错了什么。我目前正在使用:WindowsVista(32位),
我的目标是独立处理mpeg-2文件的音频和视频,并在两个流上保持同步。视频的持续时间最长约为1或2分钟。首先,关注这个post“opencv用于阅读视频(并执行该过程),ffmpeg用于音频,SDL用于播放两者”听起来很完美。考虑到最近的ffmpeg命名更改,我对代码做了一些修改。在64位机器上用cmake编译是可以的。打开编解码器时出现错误“不支持的编解码器[3]”。代码如下。其次,我寻找处理两个流程同步性的代码。#include"opencv/highgui.h"#include"opencv/cv.h"#ifndefINT64_C#defineINT64_C(c)(c##LL)#
我正在尝试使用以下代码行将视频帧的AVFrame->data[0]分配给uint8_t*缓冲区:size_tsizeOfFrameData=mpAVFrameInput->linesize[0]*mpAVFrameInput->height;memcpy(mFrameData,mpAVFrameInput->data[0],sizeOfFrameData);我想知道这是否是将帧数据复制到FFMPEG中的uint8_t*变量的正确方法? 最佳答案 获取缓冲区大小:intavpicture_get_size(enumAVPixelFor
我正在尝试使用ffmpeg(libavcodec/libavformat-MSVCx64和Zeranoe构建)进行编码和流式传输这是我的代码,主要改编自编码示例,删除了错误处理#include"stdafx.h"extern"C"{#include#include#include#include#include#include#include#include}#pragmacomment(lib,"avformat.lib")#pragmacomment(lib,"avutil.lib")#pragmacomment(lib,"avcodec.lib")intmain(){avcode
我正在尝试使用FFMPEGCAPI对H.264视频进行编码。我已经成功编译并执行了decoding/encodingexample由FFMPEG提供。我面临的问题是示例创建的.mpg文件(使用AV_CODEC_ID_MPEG1VIDEO编码)有效。Windows会创建缩略图和所有内容。另一方面,.h264(用AV_CODEC_ID_H264编码)文件没有。当我尝试在VLC中播放文件时,播放/暂停按钮只是闪烁,Windows中没有缩略图,什么也没有。在编码过程中,libx264报告如下:[libx264@004b81a0]usingcpucapabilities:MMX2SSE2Fast
上下文:我有一系列连续的位图,我想将它们编码成一种轻型视频格式。我使用ffmpeg版本2.8.3(内部版本here),在qt5、qtIDE和msvc2013适用于win32。问题:我的代码在sws_scale()处崩溃(有时在avcodec_encode_video2()处)。当我探索堆栈时,崩溃事件发生在sws_getCachedContext()。(我只能看到这些ffmpeg构建的堆栈)。我只使用这些ffmpeg库(来自Qt.pro文件):LIBS+=-lavcodec-lavformat-lswscale-lavutilswscale是哪个bug。这是代码:voidnewVide
我正在尝试使用ffmpeg读取视频文件。我有对应于它的旧版本的工作代码,并开始尝试升级到最新的构建版本,将所有那些已弃用的函数替换为它们的实际类似物。但是我遇到了一个问题。似乎没有检索到任何流,并且视频加载停止在轨道中。这是我使用的代码://Openvideofileif(avformat_open_input(&pFormatCtx,filename.toStdString().c_str(),NULL,NULL)!=0)returnFILE_NOT_OPENED;//Couldn'topenfile//Retrievestreaminformationif(avformat_fin
我是ffmpeg的新手,我正在尝试创建直播应用程序(HLS),我想要直播而不是VOD。我可以通过终端使用ffmpeg并从m4v创建.ts文件,但我不知道如何在iPhone中实现同样的事情。我的做法是在iPhone端创建.ts文件,然后发送到服务器。我不确定这种方法是否正确,如果这种方法正确,我可以创建.ts文件,否则什么是正确的方法? 最佳答案 如果你想从iPhone创建.ts文件,你需要FFmpegWrapper图书馆,然后这样做,NSString*outputPath=[documentDirectoryPathstringBy