草庐IT

with_ffmpeg

全部标签

c++ - 使用 throw_with_nested 并捕获嵌套异常

我真的很喜欢c++11中的std::throw_with_nested,因为它模拟了java的printStackTrace()但现在我只是好奇如何捕获嵌套异常,例如:voidf(){try{throwSomeException();}catch(...){std::throw_with_nested(std::runtime_error("Insidef()"));}}voidg(){try{f();}catch(SomeException&e){//IwanttocatchSomeExceptionhere,notstd::runtime_error,:(//dosomething

c++ - FFMpeg 将 RGB 图像编码为 H264

我正在开发一个DirectShow过滤器,它有2个输入引脚(1个用于音频,1个用于视频)。我正在使用FFMpeg的libavcodec/libavformat/libavutil将视频编码为H264,将音频编码为AAC,并使用RTP进行复用/流式传输。到目前为止,我能够使用libavcodec正确编码视频和音频,但现在我看到FFMpeg似乎也支持RTPmuxing。不幸的是,我找不到任何显示如何执行H264编码和RTP多路复用的示例代码。有人知道好的sample吗? 最佳答案 尝试检查HandBrake中的代码.具体来说,这个文件m

c++ - FFmpeg av_read_frame 和最大数据包大小

是否有可能检测到av_read_frame()可以读取的最大数据包(AVpacket)大小? 最佳答案 我最近也在找同样的东西。似乎av_read_frame在内部为每个编解码器/格式调用编解码器特定的read_packet函数。这反过来为每个数据包分配内存并根据编解码器/格式构成的最大限制释放它。因此,只要您有内存来支持(无效)流,您就应该没问题,并且限制特定于编解码器/格式解码器。[您可以找到在AVInputFormat中为每种格式定义的函数,如.read_packet]。 关于c+

c++ - HDF5 :Create a Dataset with string

我正在使用HDF5API,我正在尝试创建一个具有可变长度字符串的数据集。结构是structdataX{std::stringdata;};我使用的是具有静态硬编码大小的char[256]。但我希望它是动态的,所以在阅读HDF5文档后,我找到了H5T_VARIABLE并按如下方式使用它,但它仍然失败。H5Dcreate返回负值(表示错误)。hid_tmem_type;mem_type=H5Tcopy(H5T_C_S1);H5Tset_size(mem_type,H5T_VARIABLE);/*Createthememorydatatype.*/if((mem_type_id=H5Tcre

c++ - 如何用ffmpeg按毫秒搜索?

我正在尝试使用ffmpeg以毫秒为单位搜索视频。我一直在尝试使用thisquestion中的代码,它使用avformat_seek_file(我将它与-1一起用于流编号和AVSEEK_FLAG_ANY标志)。调用之后,我尝试读取下一帧,即:if(av_read_frame(fmt_ctx,&pkt)>=0){intret=0;if(pkt.stream_index==video_stream_idx){/*decodevideoframe*/ret=avcodec_decode_video2(video_dec_ctx,frame,got_frame,&pkt);if(ret但是,检索

c++ - FFmpeg 库 : Exactly constant segment duration for HLS

我们正在使用FFmpeg库git-ee94362libavformatv55.2.100。我们的目的是使用HLS将两个流(视频和音频)混合到M3U8播放列表中。此外,我们希望每个TS片段文件的持续时间正好为3.0秒(帧速率为25fps)。为了实现它,我们尝试设置几个选项和属性,即:-分段时间-keyint_min-scenechange_threshold-gop_size-force_key_frames。我们的代码如下所示:AVCodecContext*codec_ctx=NULL;AVFormatContext*ofmt_ctx=NULL;intret=0,gopSize=(in

c++ - ffmpeg sws_scale 得到了从 YUV420P 到 RGB24 的失真图像

尝试使用将YUV420p转换为RGB24时,图像失真sws_scale.代码:ret=avcodec_decode_video2(video_dec_ctx,frame,got_frame,&pkt);if(retcoded_picture_number,"#"/*av_ts2timestr(frame->pts,&video_dec_ctx->time_base)*/);/*copydecodedframetodestinationbuffer:*thisisrequiredsincerawvideoexpectsnonaligneddata*/av_image_copy(video

c++ - FFmpeg av_read_frame 返回大小但没有数据?

我已经编写了一些C代码来访问ffmpeg并将其包装在C++/CLI(.NET管理)类中。该程序获取实时视频流并提取帧并将它们转换为PNG文件。不幸的是,保存到磁盘的图像总是黑色的(在Notepad++中打开它们显示它们充满了空值)。我正在使用程序集aformat/codec-55.dll以及开发头文件和库从ffmpeg-20131120-git-e502783-win64-dev进行编译。整个项目是使用ManagedC++(Cpp/cli).NET4.0for64-bit编译的。经过一些调查,问题似乎是av_read_frame正确填充了AVPacket->size值,但AVPAcke

c# - Windows 手机 8.1 : C# Callback with IList variable fails to cast to IVector

我有一个声明回调接口(interface)的C#windowsphone8.1VisualStudio(2013)项目publicinterfaceICallBack{//////TheChildCallbackmustoverridethismethodandthiswillbefiredwhentimecomes//////Theresultantfiles///ErrorcodevoidGotFileList(FileTypetype,IListfiles,ErrorCodecode);}我有一个按如下方式实现它的C++/CX包装器:refclassCallbackImplsea

c++ - QT 和 Crypto++ with/MTd

我有两个带有MSVC201332位编译器的QT5.5项目。第一个是Qt控制台应用程序,在pro文件中使用crypto++和这两个:QMAKE_CXXFLAGS_RELEASE+=/MTQMAKE_CXXFLAGS_DEBUG+=/MTd第二个是Qtwidgets应用程序,它构建了基于对话框的GUI。单独地,每个都成功启动,但也单独地,在像上面这样的pro文件中添加相同内容的GUI项目给出了相同的旧错误:qtmain.lib(qtmain_win.obj):-1:error:LNK2038:mismatchdetectedfor'RuntimeLibrary':value'MD_Dyna