diff --git a/FFmpegDemo/FFmpegDemo.assets/VideoCamera1.gif b/FFmpegDemo/FFmpegDemo.assets/VideoCamera1.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f59ae89db80739a4936a32307e4d526883a449e Binary files /dev/null and b/FFmpegDemo/FFmpegDemo.assets/VideoCamera1.gif differ diff --git a/FFmpegDemo/FFmpegDemo.assets/image-20221027235118681.png b/FFmpegDemo/FFmpegDemo.assets/image-20221027235118681.png new file mode 100644 index 0000000000000000000000000000000000000000..f103a4deab6367f5b4b11e5d7fde42d22db08a9e Binary files /dev/null and b/FFmpegDemo/FFmpegDemo.assets/image-20221027235118681.png differ diff --git a/FFmpegDemo/FFmpegDemo.md b/FFmpegDemo/FFmpegDemo.md index 8ce03c8226260ec1508da46eb9ed1788d0112be0..80fc5bfec46070b26a625cc9acf6a9831031db25 100644 --- a/FFmpegDemo/FFmpegDemo.md +++ b/FFmpegDemo/FFmpegDemo.md @@ -13,6 +13,7 @@ | VideoPlayGL2 | 使用ffmpeg音视频库【软解码 + OpenGL显示YUV图像】实现的视频播放器; | | VideoPlayHW | 使用ffmpeg音视频库【硬解码】实现的视频播放器; | | VideoPlayHWGL | 使用ffmpeg音视频库【软/硬解码 + OpenGL显示YUV/NV12】实现的视频播放器; | +| VideoCamera1 | FFmpeg打开本地摄像头简单示例(软解码+OpenGL) | | AVIOReading | API示例程序,演示如何从通过AVIOContext访问的自定义缓冲区读取数据。 | | DecodeAudio | 使用libavcodec API的音频解码示例(MP3转pcm) | @@ -132,4 +133,19 @@ > 2. 使用Qt的方式重写了Demo; > 3. 解决了官方Demo中的部分Bug。 -![DecodeAudio](C:/Users/mhf/Desktop/DecodeAudio.gif) +![DecodeAudio](FFmpegDemo.assets/DecodeAudio.gif) + + + +### 1.8 VideoCamera1 + +> 1. 使用ffmpeg音视频库【软解码】打开【本地摄像头】; +> 2. 采用【OpenGL显示YUV】图像,支持自适应窗口缩放,支持使用QOpenGLWidget、QOpenGLWindow显示; +> 3. 将YUV转RGB的步骤由CPU转换改为使用GPU转换,降低CPU占用率; +> 4. 视频播放支持实时开始/关闭、暂停/继续播放; +> 5. 视频解码、线程控制、显示各部分功能分离,低耦合度。 +> 6. 采用最新的5.1.2版本ffmpeg库进行开发,超详细注释信息,将所有踩过的坑、解决办法、注意事项都得很写清楚。 + +![VideoCamera1](FFmpegDemo.assets/VideoCamera1.gif) + +![image-20221027235118681](FFmpegDemo.assets/image-20221027235118681.png) diff --git a/FFmpegDemo/FFmpegDemo.pro b/FFmpegDemo/FFmpegDemo.pro index a90836d90e02ccc27340aa0d1b83f7f5f8ef2fd0..be25d0592da8fa43fbcfe45754cdeccc3c3d2bea 100644 --- a/FFmpegDemo/FFmpegDemo.pro +++ b/FFmpegDemo/FFmpegDemo.pro @@ -15,7 +15,7 @@ SUBDIRS += VideoPlayGL1 # 使用软解码实现的视频播放器 使用OpenG SUBDIRS += VideoPlayGL2 # 使用软解码实现的视频播放器 使用OpenGL显示YUV图像 SUBDIRS += VideoPlayHW # 使用硬件解码实现的视频播放器 SUBDIRS += VideoPlayHWGL # 使用硬件解码实现的视频播放器 使用OpenGL显示YUV/NV12图像 -SUBDIRS += VideoCamera1 # FFmpeg打开摄像头简单示例(软解码+OpenGL) +SUBDIRS += VideoCamera1 # FFmpeg打开本地摄像头简单示例(软解码+OpenGL) SUBDIRS += AVIOReading # 使用libavformat解复用器通过自定义AVIOContext读取回调访问媒体内容。 SUBDIRS += DecodeAudio # 使用libavcodec API的音频解码示例(MP3转pcm) diff --git a/README.md b/README.md index 7d44c57765c2156bd6e747f098369b35b36e9463..7d1fc6b67e562e7d31a031e3b4702a127c0a6469 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ ![image-20220827211417219](README.assets/image-20220827211417219.png) -在这个仓库中收录了一些自己练习Qt用的Demo和日常开发中经常用到的功能模块。 -
所有内容为我学习、工作过程中产生,并算不上优秀,仅作参考
+ +
在这个仓库中收录了一些自己练习Qt用的Demo和日常开发中经常用到的功能模块。
# 一、说明