diff --git a/FFmpegDemo/FFmpegDemo.assets/image-20221015204308041.png b/FFmpegDemo/FFmpegDemo.assets/image-20221015204308041.png index 4d873236e6c8c79196f55a327654eacd7c1ee625..ca391c33f4cfdbba07c6c0e57cc3d5fa393957a4 100644 Binary files a/FFmpegDemo/FFmpegDemo.assets/image-20221015204308041.png and b/FFmpegDemo/FFmpegDemo.assets/image-20221015204308041.png differ diff --git a/FFmpegDemo/FFmpegDemo.assets/image-20221017232820037.png b/FFmpegDemo/FFmpegDemo.assets/image-20221017232820037.png index e1cf3826105cb0acbaadbc5d405f2bcc3d6ad54e..e678cf5ec074b7e841e37dec78495e550ca41fbb 100644 Binary files a/FFmpegDemo/FFmpegDemo.assets/image-20221017232820037.png and b/FFmpegDemo/FFmpegDemo.assets/image-20221017232820037.png differ diff --git a/FFmpegDemo/FFmpegDemo.assets/image-20221020192642223.png b/FFmpegDemo/FFmpegDemo.assets/image-20221020192642223.png new file mode 100644 index 0000000000000000000000000000000000000000..c62934fe5e69e209d40145d072c7930b27f0bd2b Binary files /dev/null and b/FFmpegDemo/FFmpegDemo.assets/image-20221020192642223.png differ diff --git a/FFmpegDemo/FFmpegDemo.md b/FFmpegDemo/FFmpegDemo.md index 971fbc20bf209ae8423618c3038f92d1357a35fe..39fb2faa7fc3927097699e69028733c4b9f1c32a 100644 --- a/FFmpegDemo/FFmpegDemo.md +++ b/FFmpegDemo/FFmpegDemo.md @@ -6,12 +6,13 @@ ## 1、说明 -| 类名 | 功能 | -| ------------ | ------------------------------------------------------------ | -| VideoPlay | 使用ffmpeg音视频库【软解码】实现的视频播放器; | -| VideoPlayGL1 | 使用ffmpeg音视频库【软解码 + OpenGL显示RGB图像】实现的视频播放器; | -| VideoPlayGL2 | 使用ffmpeg音视频库【软解码 + OpenGL显示YUV图像】实现的视频播放器; | -| VideoPlayHW | 使用ffmpeg音视频库【硬解码】实现的视频播放器; | +| 类名 | 功能 | +| ------------- | ------------------------------------------------------------ | +| VideoPlay | 使用ffmpeg音视频库【软解码】实现的视频播放器; | +| VideoPlayGL1 | 使用ffmpeg音视频库【软解码 + OpenGL显示RGB图像】实现的视频播放器; | +| VideoPlayGL2 | 使用ffmpeg音视频库【软解码 + OpenGL显示YUV图像】实现的视频播放器; | +| VideoPlayHW | 使用ffmpeg音视频库【硬解码】实现的视频播放器; | +| VideoPlayHWGL | 使用ffmpeg音视频库【软/硬解码 + OpenGL显示YUV/NV12】实现的视频播放器; | @@ -87,3 +88,21 @@ * 由于测试的电脑硬件性能过低,所以看起来效果不是很明显 ![VideoPlayHW-tuya](FFmpegDemo.assets/VideoPlayHW-tuya.png) + + + +### 1.5 VideoPlayHWGL + +> 1. 使用ffmpeg音视频库【软/硬解码】实现的视频播放器; +> 2. 支持打开本地视频文件(如mp4、mov、avi等)、网络视频流(rtsp、rtmp、http等); +> 3. 支持视频匀速播放; +> 4. 采用【OpenGL显示YUV、NV12】图像,支持自适应窗口缩放,支持使用QOpenGLWidget、QOpenGLWindow显示; +> 5. 将YUV/NV12转RGB的步骤由CPU转换改为使用GPU转换,降低CPU占用率; +> 6. 使用av_hwframe_map替代av_hwframe_transfer_data,可将【耗时降低1/3】; +> 7. 视频播放支持实时开始/关闭、暂停/继续播放; +> 8. 视频解码、线程控制、显示各部分功能分离,低耦合度。 +> 9. 采用最新的【5.1.2版本】ffmpeg库进行开发,超详细注释信息,将所有踩过的坑、解决办法、注意事项都得很写清楚。 + +* 使用GPU解码 + OpenGL绘制大大降低了CPU占用率 + +![image-20221020192642223](FFmpegDemo.assets/image-20221020192642223.png)