
音视频开发
文章平均质量分 88
音视频开发专栏主要涉及音视频处理的基础与进阶技术,涵盖音视频编解码、流媒体传输、实时通信、视频播放器开发等内容。通过学习如何使用常见的音视频库(如 FFmpeg、GStreamer、OpenAL 等),开发者可以掌握音视频数据的采集、处理、压缩和传输技术。此外,专栏还介绍了多线程处理。
花落已飘
阿里云博客专家,CSDN万粉博主,华为云享专家。擅长C语言单片机等技术智能小车带设计,单片机C语言设计。可以带徒弟学C语言,C加加,Linux,单片机,QT等嵌入式技术。也可承接项目。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ffmpeg函数简介(封装格式相关)
读取一个包(packet),即从文件或流中读取一帧音视频数据。创建的 AVFormatContext,那么用它来释放。从媒体文件中读取流信息,比如视频流、音频流、字幕流等。,包含了解码器、流信息、文件路径、数据缓冲等信息。几乎所有操作媒体文件的函数都围绕这个结构体展开。获取流信息,比如帧率、分辨率、码率、时长等。这个函数更灵活,允许设置查找时间戳范围。但通常我们更常用的是。(即打开文件并准备读取媒体信息)。打开一个输入媒体文件,并填充。关闭输入文件并释放相关资源。,适合更复杂的跳转需求。原创 2025-04-09 21:05:36 · 1473 阅读 · 0 评论 -
ffmpeg播放音视频流程
创建结构体 → 打开文件 → 查找流 → 找解码器 → 解码成帧 → 播放 → 释放资源。原创 2025-04-09 21:12:55 · 975 阅读 · 0 评论 -
ffmpeg编解码器相关函数
(或// 1. 找到解码器// 2. 分配上下文// 3. 从 AVCodecParameters 拷贝参数// 4. 打开解码器// 5. 循环解码// 处理解码后的 frame,比如显示或保存// 6. 清理资源在 FFmpeg 中,处理音视频数据的各个组件是基于不同的结构体来管理的。这里我会简要讲解一下与音视频解复用、编码解码相关的结构体,重点关注AVStreamAVCodecAVPacket和AVFrame等。原创 2025-04-09 21:18:16 · 873 阅读 · 0 评论 -
SDL显示YUV视频
这个程序通过 SDL2 创建一个视频播放窗口,读取并显示 YUV 文件的每一帧视频数据。它通过一个单独的线程来周期性触发视频帧的刷新,保持视频播放的流畅。原创 2025-04-05 14:39:10 · 614 阅读 · 0 评论 -
SDL读取PCM音频文件
/ 每次读取2帧数据, 以1024个采样点一帧 2通道 16bit采样点为例1024222// 每次读取2帧数据, 以1024个采样点一帧 2通道 16bit采样点为例 # define PCM_BUFFER_SIZE(1024 * 2 * 2 * 2)定义了每次读取音频数据的缓存大小。每帧音频数据由 1024 个采样点组成,2 个通道(立体声),每个采样点占 2 字节(16 位)。字节。// 音频PCM数据缓存// 目前读取的位置// 缓存结束位置。原创 2025-04-05 16:21:22 · 970 阅读 · 0 评论 -
ffmpeg基础知识入门
容器是一种媒体封装格式,用来将音频流、视频流、字幕流等打包在一个文件中。媒体流是指某一类连续的媒体数据,通常是视频流、音频流或字幕流。Frame(帧):解码后的数据单位(未压缩)视频帧是一张图片音频帧是一段 PCM 采样点Packet(包):压缩后的数据单位(经过编码器压缩后,准备写入容器的)Codec = COder + DECoder,即“编码器/解码器”。复用器(Muxer)把多条媒体流(音频、视频)打包进容器,形成一个完整的媒体文件或媒体流。解复用器(Demuxer)从容器中。原创 2025-04-05 18:50:53 · 807 阅读 · 0 评论 -
SDL中SDL_AudioSpec结构体参数
int freq;// 采样频率(Hz)// 采样点格式// 通道数// 静音值(用于填充缓冲)// 每次回调请求的采样数(缓冲区大小)// 已弃用// 缓冲区字节大小(自动计算)// 回调函数// 用户自定义数据(传入回调)原创 2025-04-05 18:30:28 · 1230 阅读 · 0 评论 -
SDL多线程编程
SDL 提供了多线程编程的基本支持,包括线程创建、互斥锁和条件变量等机制。通过合理的多线程设计,可以提高应用程序的性能,尤其是在需要处理大量并发任务的场景中。然而,使用多线程时需要小心资源同步和线程安全问题,确保线程间不会产生竞争条件或死锁。原创 2025-04-05 14:00:04 · 205 阅读 · 0 评论 -
SDL事件循环
事件循环(Event Loop)用户点击关闭窗口按下键盘移动鼠标、点击鼠标控制器输入窗口尺寸变化等如果你不写事件循环,SDL 窗口会直接“卡死”或“无响应”。原创 2025-04-05 13:55:36 · 196 阅读 · 0 评论 -
SDL视频显示函数
这些函数是 SDL2 中用于图形和渲染的一些基本操作。初始化 SDL 库。创建窗口和渲染器。创建纹理并更新数据。使用渲染器将纹理渲染到屏幕。控制程序的帧率(通过最后清理 SDL 资源。这些操作通常在游戏开发或图形应用中使用,用于在窗口中绘制动态内容或图像。下面是一个使用 SDL2 创建简单窗口并进行图像渲染的示例程序。这个程序展示了如何使用你提到的 SDL 函数来创建窗口、渲染器、纹理,并进行图像绘制。原创 2025-04-05 09:41:46 · 595 阅读 · 0 评论 -
SDL介绍和移植
Qt用于管理应用程序生命周期和事件循环。SDL2用于创建窗口、处理图形和多媒体事件。程序使用WinMain作为入口,创建了 SDL 窗口并开始事件循环,同时允许 Qt 在 SDL 的事件循环中处理事件。这种方式适合需要同时处理图形渲染和 Qt 事件系统的应用程序。原创 2025-04-05 09:26:05 · 449 阅读 · 0 评论 -
ffmpeg常见命令3
FFmpeg 提供的过滤器系统非常灵活和强大,能够帮助你对视频进行多种处理,例如添加文字水印、图片水印、画中画以及多宫格效果等。通过掌握这些过滤器,你可以在 FFmpeg 中执行几乎所有常见的视频编辑任务,所有这些都可以通过简单的命令行实现,无需复杂的图形界面操作。原创 2025-04-04 20:24:09 · 624 阅读 · 0 评论 -
ffmpeg常见命令2
FFmpeg 提供了强大的音视频处理能力,涵盖了从提取音视频数据到格式转换、裁剪、合并、录制、直播等多种功能。通过简单的命令行操作,FFmpeg 可以高效地完成音视频文件的各种处理任务。理解这些基本命令的使用,有助于你在日常工作中更加灵活地进行音视频处理。原创 2025-04-04 20:21:34 · 729 阅读 · 0 评论 -
ffmpeg音视频处理流程
输入文件(Input File)读取和解封装输入文件中的音视频数据。编码数据包(Encoded Packets)解封装器提取编码后的音视频数据包,为解码做准备。解码后的数据帧(Decoded Frames)使用解码器解码编码数据包,得到可操作的音视频数据帧。处理后的数据帧(Processed Frames)对解码后的数据帧进行处理,例如缩放、转码、加特效等操作。编码数据包(Encoded Packets)将处理后的数据帧重新编码为数据包,以适应目标格式和压缩要求。原创 2025-04-04 20:13:55 · 896 阅读 · 0 评论 -
ffmpeg基础指令学习
FFmpeg 是一个功能强大的多媒体处理工具,可以进行各种视频和音频操作,包括格式转换、剪切、合并、音频提取、调整比特率、视频编码等。熟悉并掌握常见的 FFmpeg 基础指令后,可以实现对音视频文件的广泛处理。原创 2025-04-04 19:48:04 · 512 阅读 · 0 评论 -
音视频学习(ffmpeg、ffplay、ffprobe的区别)
FFmpeg是一个多功能的音视频处理工具,支持音视频转换、编辑、流式处理等操作。FFplay是一个简化的音视频播放器,基于 FFmpeg 库,适合快速预览和播放音视频文件,具有命令行界面。FFprobe是一个用于提取多媒体文件信息的工具,适用于获取音视频文件的详细元数据,如格式、时长、编码类型等。工具主要用途常见命令示例FFmpeg音视频格式转换、剪辑、合并、流媒体推流等处理FFplay音视频播放工具,快速播放和测试音视频文件FFprobe提取音视频文件的详细信息和元数据分析FFmpeg。原创 2025-04-05 07:00:00 · 486 阅读 · 0 评论 -
ubuntu安装ffmpeg
FFmpeg 是一个开源的跨平台音视频处理工具,广泛用于音视频编解码、转码、剪辑、合成、流媒体处理等。它支持几乎所有的视频和音频格式,提供了命令行工具和丰富的开发接口。ffmpeg: 命令行工具,用于音视频的录制、转换和流式处理。ffplay: 一个简单的媒体播放器,用于播放音视频文件。ffprop: 用于处理流式音视频数据。libavcodec: 提供音视频编解码的核心库。: 提供多种格式的封装格式处理。libavutil: 提供音视频处理的各种实用工具。libswscale。原创 2025-04-05 07:00:00 · 1101 阅读 · 0 评论 -
音视频基础(音频常用概念)
帧长短(高 FPS)画面更流畅,但数据量增大。,总比特率=视频比特率 + 音频比特率。音频比特率表示每秒钟传输的音频数据量。这样在低带宽条件下,能够提升视觉上的流畅度。,两者可以互换使用。非交错模式(Progressive)又称。(Frame)是视频或音频的最小单元。帧长(Frame Length)指的是。交错模式(Interlaced)是一种。下面详细讲解这些概念及其影响。,只是在不同语境下使用不同的术语。音视频处理涉及多个重要概念,包括。比特率(Bitrate)指的是。,即每一帧都完整显示,不分场。原创 2025-04-04 13:45:49 · 889 阅读 · 0 评论 -
音视频基础(视频的主要概念)
视频编码(如 H.264、H.265)使用。它决定了视频的清晰度和流畅度。原创 2025-04-04 13:32:18 · 648 阅读 · 0 评论 -
音视频基础(YUV存储格式)
YUV 主要用于视频压缩,因为人眼对亮度更敏感,色度数据可以被压缩。不同的 YUV 采样格式(4:4:4、4:2:2、4:2:0)主要是为了在画质与数据量之间取舍。存储方式(Planar、Packed、Semi-Planar)决定了数据存放的结构。YUV 需要转换为 RGB 才能显示在普通屏幕上。如果你有更具体的应用场景,比如在硬件或编解码方向上的问题,可以进一步探讨!😊。原创 2025-03-31 21:13:37 · 949 阅读 · 0 评论 -
音视频基础(图像的基础概念)
在图像和视频处理中,有几个重要的基础概念需要理解,包括像素、分辨率、位深、帧率、码率和。这些概念是图像与视频处理的基础,掌握它们有助于更深入理解。原创 2025-03-31 20:35:09 · 970 阅读 · 0 评论 -
音视频基础(音视频的录制和播放原理)
这张图展示了音视频播放的基本流程,包括从媒体文件的解析、解码、同步处理到最终输出的全过程。以下是具体的解析:音视频播放的基本流程包括:这个流程适用于本地播放器(如 VLC、PotPlayer)以及流媒体播放(如 YouTube、Netflix)。这张图展示了音视频播放的基本流程,包括从媒体文件的解析、解码、同步处理到最终输出的全过程。以下是具体的解析:音视频播放的基本流程包括:这个流程适用于本地播放器(如 VLC、PotPlayer)以及流媒体播放(如 YouTube、Netflix)。原创 2025-03-31 20:29:53 · 1034 阅读 · 0 评论