我们在使用fopen打开文件的时候有时会出现失败返回null情况,但是我们不能直接通过log具体是什么原因导致的,所以这时我们可以通过errno和strerror获取错误码和...
我们在使用fopen打开文件的时候有时会出现失败返回null情况,但是我们不能直接通过log具体是什么原因导致的,所以这时我们可以通过errno和strerror获取错误码和...
好吧,自己写的教程不能正常发布出去,在网上找了一个跟我使用步骤差不多的教程https://juejin.cn/post/7173447848292253704[https:/...
在Android中,封装的同步类主要有Mutex(AutoMutex)与Condition。 这两个类在android中被大量的使用,这也说明这两个类是非常重要的。 一、Mu...
在《Java与CC++交互JNI编程[https://www.cnblogs.com/zuojie/p/16335454.html#autoid-1-5-1]》中有讲过Att...
一、实现seek功能 我们主要是使用ffmpeg的av_seek_frame方法实现seek功能,但是我们给外界提供seek功能的方法可以不叫seek,我这里使用setTim...
简介 音视频同步的实现可以有两种方式 视频同步到音频 音频同步到视频 我们这里选择第一种,因为音频播放的频率是SDL控制的,我们没法改变,所以使用视频同步到音频。 实现音视频...
一、简介 上节介绍了使用SDL播放音频,这节介绍视频显示,其解码流程跟音频差不多。 解码视频是比较耗时的,需要我们自己开个线程去解码,而音频是SDL帮我们管理了子线程去解码音...
一、简介 接着上节的音频解码,使用SDL播放音频。 通过上节程序运行打印发现这些音频信息明显不符合SDL的,所以我们需要进行重采样 二、音频重采样 这里我们可以参考之前的《1...
一、简介 如上图,我们在主线程中开启一个子线程进行解封装,然后在开两个线程分别进行视频解码和音频解码,其中音频解码我们使用的是SDL去渲染,SDL自己会管理子线程,不用我们来...
一、简介 我们使用QT+ffmpeg实现一个播放器,这里我们主要是为了学习ffmpege了,而QT只是辅助的,所以播放器的界面搭建我们不在介绍,可以直接看代码(界面搭建代码[...
一、简介 为什么要用多线程?在音视频领域主要是实现音视频同步。实现了音视频同步,我们的播放器就基本上合格了。多线程的好处主要是能使程序更加充分利用硬件(主要是CPU)的性能。...
一、什么是封装格式 封装格式也称为容器,用于打包音频、视频以及字幕等等,比如常见的容器有MP4、MOV、WMV、FLV、AVI、MKV等等。容器里面装的是音视频的压缩帧,但是...
本文的主要内容:对H.264数据进行解码(解压缩)。 使用FFmpeg命令进行H.264解码 如果是命令行的操作,非常简单。 使用FFmpeg代码进行H.264解码 接下来主...
本文的主要内容:使用H.264编码对YUV视频进行压缩。 使用FFmpeg命令进行H.264编码 如果是命令行的操作,非常简单。 使用FFmpeg代码实现H.264编码 接下...
本文主要介绍一种非常流行的视频编码:H.264[https://zh.wikipedia.org/wiki/H.264]。 计算一下:10秒钟1080p(1920x1080)...
前面文章FFmpeg像素格式转换中我们使用FFmpeg实现了一个像素格式转换工具类,现在我们就可以在Qt中利用QImage很容易的实现一个简单的YUV播放器了。 播放器功能很...
简介 前面使用 SDL 显示了一张YUV图片以及YUV视频。接下来使用Qt中的QImage来实现一个简单的 YUV 播放器,查看QImage支持的像素格式,你会发现QImag...
简介 使用SDL实现简单的YUV播放器。这里还需要使用到像素格式和计算图片大小,这两个我们直接使用ffmpeg来实现,因此需要使用ffmpeg的libavutil/avuti...
一、显示YUV图片 显示 YUV 图片和显示 BMP 图片的大致流程是一样的。显示 BMP 图片我们可以直接获取到 BMP 图片的 surface,然后直接从 surface...
文本的主要内容是:使用SDL[https://www.cnblogs.com/zuojie/p/16755457.html#autoid-1-0-0]显示一张BMP图片,算是...