2025年7月15日
摘要:
一、概述 使用纯C++开发的方式实现EGL、OpenGL ES、ffmpeg部分。Java/kotlin部分只需要传递一个文件url地址即可实现视频的播放。 相关的坑以及解决的办法: 编译正常但是画面不显示 Surface和EGL没有绑定。解决办法如下: winsurface = eglCreate
阅读全文
posted @ 2025-07-15 14:17
飘杨......
阅读(5)
推荐(0)
摘要:
一、概述 在Android中使用SurfaceView+ANativeWindow+ffmpeg播放视频非常简单。主要关注一下步骤以及里面的坑就行 步骤: 创建一个Activity并写一个自定的View继承SurfaceView,并重写SurfaceHolder.Callback的onSurface
阅读全文
posted @ 2025-07-15 13:50
飘杨......
阅读(2)
推荐(0)
2025年6月20日
摘要:
一、概述 SDL2既可以播放视频也可以播放音频,前面介绍了视频的播放,本节对播放音频做一下总结。 步骤: 1.初始化 SDL_Init(SDL_INIT_AUDIO); 2.根据传入的参数打开音频设备 SDL_AudioSpec sdl_spec; sdl_spec.freq = audioSpec
阅读全文
posted @ 2025-06-20 11:24
飘杨......
阅读(7)
推荐(0)
2025年6月17日
摘要:
一、概述 场景还原: 在做视频多路视频监控项目的时候,需要用户拖动相机然后在拖拽放开后展示相机数据(视频画面)。现遇到一个问题,拖拽没问题,就是无法放下,切鼠标显示禁用符号。 即:dropEvent(QDropEvent* e)方法不执行。也不报错。 ps:Qt版本用的是:5.12.0 二、解决办法
阅读全文
posted @ 2025-06-17 14:52
飘杨......
阅读(34)
推荐(0)
2025年5月29日
摘要:
一、概述 在基础音视频开发中视频的转码是一个常见的需求。以mp4文件举例:可能需要改变视频的宽高、码率、编码格式、像素格式等等中的一种和多种。那转码功能就派上用场了。 实现步骤: 1.创建解封装器,用于解封装mp4 2.创建一个封装器,用于重新封装转码后的mp4文件 3.创建一个解码器,用于解码mp
阅读全文
posted @ 2025-05-29 17:54
飘杨......
阅读(46)
推荐(0)
2025年5月28日
摘要:
一、概述 在日常的开发中,经常会遇到视频截取的需求,如:视频编辑。用ffmpeg的视频截取功能非常简单,只需要调用av_frame_seek函数即可。 但是需要理解av_frame_seek参数的含义,其主要功能是对音视频流的位置进行定位。 int av_seek_frame(AVFormatCon
阅读全文
posted @ 2025-05-28 13:12
飘杨......
阅读(10)
推荐(0)
摘要:
一、概述 保存网络流为mp4存储到本地是一个通用的并且常用的需求,例如在视频监控、网络直播领域会根据不同级别以及重要程度保存媒体流到本地一定的时间,有些要求一周,有些要求半年、一年乃至几年的都有。 如何保存这些流就成为了关键。当然有些需求还涉及到了转码,但是本节只讲如何将流原封不动的保存下来,不考虑
阅读全文
posted @ 2025-05-28 11:54
飘杨......
阅读(22)
推荐(0)
2025年5月27日
摘要:
一、概述 在前几篇的文章中介绍了从H264文件中读取数据封装成AVPacket并通过解码器解码,然后用SDL进行渲染的案例。本节继上面的内容,通过加载一个mp4文件,通过ffmpeg的解封装功能 ,把AVPacket拿出来,然后放到之前封装好的解码器中进行解码,然后使用SDL进行渲染操作。 ps:本
阅读全文
posted @ 2025-05-27 16:37
飘杨......
阅读(16)
推荐(0)
2025年5月26日
摘要:
一、概述 在上一篇博客中使用Qt+ffmpeg+SDL实现H264/H265软解码并渲染。本节则在上一篇的基础上加上硬解码并渲染出画面。 使用AV_HWDEVICE_TYPE_DXVA2做硬解码测试。其解码出来的数据格式为NV12格式。 格式说明: NV12 格式的视频数据由Y 平面和UV 平面组成
阅读全文
posted @ 2025-05-26 13:39
飘杨......
阅读(30)
推荐(0)
2025年5月22日
摘要:
一、概述 上一篇写了使用windows录屏+ffmpeg生成H264/H265数据,并存储成文件。本节就写下如何使用ffmpeg+sdl播放H264/H265裸数据文件。 界面如下: 1.播放前界面 2.播放后界面 二、代码示例 void H264OrH265FilePlayWindow::Draw
阅读全文
posted @ 2025-05-22 16:59
飘杨......
阅读(12)
推荐(0)