草庐IT

ffmpeg-static

全部标签

c++, FFMPEG, H264, 创建零延迟流

我正在尝试对视频进行编码(目前使用h264编解码器,但如果更适合我的需要,其他编解码器也可以),以便在一帧(包括第一帧)之后直接提供解码所需的数据)被编码(所以,我只想要I和P帧,没有B帧)。我需要如何设置AVCodecContext才能获得这样的流?到目前为止,我对这些值的测试仍然总是导致avcodec_encode_video()在第一帧返回0。//编辑:这是目前我的AVCodecContext设置代码:staticAVStream*add_video_stream(AVFormatContext*oc,enumCodecIDcodec_id,intw,inth,intfps){A

c++ - FFMPEG:编码后直接解码数据包

我尝试使用FFMPEGAPI将x264视频编码为0帧延迟的MP4文件,并实时在屏幕上显示当前编码的帧(带有编码伪像)。文件的编码有效,但到目前为止,我没有在将帧写入文件后立即对其进行解码。我尝试的是将从avcodec_encode_video()返回的packetdata直接输入avcodec_decode_video2()但该函数返回-1并且cmd输出显示:[h264@00000000025F0710]non-existingPPS0referenced[h264@00000000025F0710]decode_slice_headererror[h264@00000000025F0

c++ - 如何使用 static_cast 安全地识别和释放这个 c++ 对象?

在其他Objective-C类中,我在下面的c++类中调用代码。有时fSound对象不是FMOD::Sound对象,它在被释放时会崩溃。在释放之前如何确认fSound对象是正确的类型?-(void)unloadSound:(FMOD::Sound*)fSound{FMOD_RESULTresult=FMOD_OK;FMOD::Sound*soundEffect=static_cast(fSound);if(soundEffect){soundEffect->release();}soundEffect=NULL;fSound=NULL;} 最佳答案

c++ - 什么时候必须/应该使用 dynamic_cast 而不是 static_cast?

我想知道什么时候dynamic_cast必须或应该在static_cast上使用,并提供示例。我读过thisSOquestion,但它并没有真正提供任何具体的例子。我假设大多数示例都涉及多态类类型。目前我知道在static_cast上使用dynamic_cast的唯一原因是我不能100%确定我正在使用的具体类型。一些其他的想法:横向转换(在多重继承中)在虚拟继承层次结构中转换为基类在使用多重继承的类中转换到“最右边”的继承类型时,指针会改变(如果使用static_cast)吗?“如果类型未知”是唯一的原因吗?如果不是,有人可以提供示例来说明为什么必须或应该使用dynamic_cast而

c++ - 使用可执行输出构建 ffmpeg

我通常不喜欢问这样的“你帮我弄明白”的问题,但我怀疑这个问题对于C++大师来说真的很简单。我想为Android构建ffmpeg,我希望它输出可执行文件而不是一组库。我们一直在使用guardian项目的构建:https://github.com/guardianproject/android-ffmpeg它确实产生了我们想要的结果,但我发现针对不同的架构对其进行调整充其量是令人不愉快的。我已经构建了这个版本:https://github.com/appunite/AndroidFFmpeg它很好地切分了不同的架构,但生成了一个jni版本。关于我为什么要exe的原因说来话长,但我暂时跳过它

【C++】---static成员(附OJ题)

一、静态成员变量1.概念:声明为static的类成员称为类的静态成员,静态成员分为两种:(1)static修饰的成员变量:静态成员变量(2)static修饰的成员函数:静态成员函数注意:静态成员变量一定要在:类外进行初始化2.如何计算一个类里面定义了多少个对象?#includeusingnamespacestd;classA{public: A() { ++countA; } A(constA&n) { ++countA; } ~A() { --countA; } //静态成员函数专门访问静态成员变量 staticintGetCountA() { returncountA; }priv

c++ - 在断言中检查 static_cast 与 reinterpret_cast

我看到了一些代码ASSERT(static_cast(p)==reinterpret_cast(p))我认为p是一个基类型指针。这个断言的目的是什么?它是否检查MyClass不是某些多重继承层次结构的一部分(或任何会导致已知强制转换更改p的地址值的东西)? 最佳答案 由于reinterpret_cast(p)的行为是大多数用途的特定实现,几乎所有reinterpret_cast(p)的用途是代码高度不可移植且理想情况下应避免的标志。有时reinterpret_casts是不可避免的,但尝试断言它的属性几乎肯定是代码正在尝试做它不应该

c++ - FFmpeg + OpenAL - 无法播放视频中的流式声音

我正在解码OGG视频(theora和vorbis作为编解码器)并希望在播放声音的同时在屏幕上显示它(使用Ogre3D)。我可以很好地解码图像流,视频以正确的帧速率完美播放,等等。但是,我根本无法使用OpenAL播放声音。编辑:我设法让播放的声音至少在某种程度上类似于视频中的实际音频。更新了示例代码。编辑2:我现在能够获得“几乎”正确的声音。我必须将OpenAL设置为使用AL_FORMAT_STEREO_FLOAT32(在初始化扩展后),而不仅仅是STEREO16。现在声音“只是”非常高的音调和断断续续的,但速度正确。下面是我解码音频数据包的方法(在后台线程中,等效的方法适用于视频文件的

c++ - 正确计算PTS和DTS同步音视频ffmpeg C++

我正在尝试将H264编码数据和G711PCM数据复用到mov多媒体容器中。我正在从编码数据创建AVPacket,最初视频/音频帧的PTS和DTS值等同于AV_NOPTS_VALUE。所以我使用当前时间信息计算了DTS。我的代码-boolAudioVideoRecorder::WriteVideo(constunsignedchar*pData,size_tiDataSize,boolconstbIFrame){.........................................................................................

FlashMeeting(基于FFmpeg+openCV)视频语音通讯系统

Web端体验地址:https://download.csdn.net/download/XiBuQiuChong/88805337客户端下载地址:https://download.csdn.net/download/XiBuQiuChong/88805337FlashMeeting(基于FFmpeg+openCV)是一整套先进的以FFmpeg+openCV技术为基础的视频语音通讯系统。利用该系统可以灵活搭建出诸如视频会议、在线访谈、在线招聘、远程教育、在线招标、在线客服等个性鲜明的应用程序。基于FFmpeg+openCV技术的跨平台性,该系统除了可以运行于PC(Windows),后续还可运行于