ffmpeg视频转码遇到H264黑屏问题
摘要:一、概述 在基础音视频开发中视频的转码是一个常见的需求。以mp4文件举例:可能需要改变视频的宽高、码率、编码格式、像素格式等等中的一种和多种。那转码功能就派上用场了。 实现步骤: 1.创建解封装器,用于解封装mp4 2.创建一个封装器,用于重新封装转码后的mp4文件 3.创建一个解码器,用于解码mp
阅读全文
posted @
2025-05-29 17:54
飘杨......
阅读(129)
推荐(0)
ffmpeg根据输入的参数截取视频
摘要:一、概述 在日常的开发中,经常会遇到视频截取的需求,如:视频编辑。用ffmpeg的视频截取功能非常简单,只需要调用av_frame_seek函数即可。 但是需要理解av_frame_seek参数的含义,其主要功能是对音视频流的位置进行定位。 int av_seek_frame(AVFormatCon
阅读全文
posted @
2025-05-28 13:12
飘杨......
阅读(48)
推荐(0)
ffmpeg将视频流录制下来并保存到本地
摘要:一、概述 保存网络流为mp4存储到本地是一个通用的并且常用的需求,例如在视频监控、网络直播领域会根据不同级别以及重要程度保存媒体流到本地一定的时间,有些要求一周,有些要求半年、一年乃至几年的都有。 如何保存这些流就成为了关键。当然有些需求还涉及到了转码,但是本节只讲如何将流原封不动的保存下来,不考虑
阅读全文
posted @
2025-05-28 11:54
飘杨......
阅读(235)
推荐(0)
ffmpeg解封装mp4并解码渲染(SDL2)
摘要:一、概述 在前几篇的文章中介绍了从H264文件中读取数据封装成AVPacket并通过解码器解码,然后用SDL进行渲染的案例。本节继上面的内容,通过加载一个mp4文件,通过ffmpeg的解封装功能 ,把AVPacket拿出来,然后放到之前封装好的解码器中进行解码,然后使用SDL进行渲染操作。 ps:本
阅读全文
posted @
2025-05-27 16:37
飘杨......
阅读(54)
推荐(0)
Qt+ffmpeg+SDL硬件解码并渲染
摘要:一、概述 在上一篇博客中使用Qt+ffmpeg+SDL实现H264/H265软解码并渲染。本节则在上一篇的基础上加上硬解码并渲染出画面。 使用AV_HWDEVICE_TYPE_DXVA2做硬解码测试。其解码出来的数据格式为NV12格式。 格式说明: NV12 格式的视频数据由Y 平面和UV 平面组成
阅读全文
posted @
2025-05-26 13:39
飘杨......
阅读(153)
推荐(0)
ffmpeg+sdl播放H264/H265文件
摘要:一、概述 上一篇写了使用windows录屏+ffmpeg生成H264/H265数据,并存储成文件。本节就写下如何使用ffmpeg+sdl播放H264/H265裸数据文件。 界面如下: 1.播放前界面 2.播放后界面 二、代码示例 void H264OrH265FilePlayWindow::Draw
阅读全文
posted @
2025-05-22 16:59
飘杨......
阅读(70)
推荐(0)
FFmpeg实战:录制Windows屏幕并用FFmpeg压缩成H.264/H.265并保存
摘要:一、概述 前面讲过【Qt+Windows录制屏幕并将屏幕录制的BGRA数据保存到本地】。本节就在这一篇的基础上加上【利用ffmpeg的SwsContext将BGRA数据转YUV420P】,并将转换好的YUV420P数据 通过H264/H265编码压缩,然后再存储到本地。 工具截图: 功能介绍: 1.
阅读全文
posted @
2025-05-21 16:35
飘杨......
阅读(159)
推荐(0)
ffmpeg SwsContext像素格式转换BGRA转YUV420P
摘要:一、概述 ffmpeg提供了一个很有用的工具进行像素格式的转换。在实际的应用场景中可以根据需求来定制转换过程。 本例通过BGRA转YUV420P来展现这个过程 注意事项: 输入输出不能搞错,特别是输入的像素格式是什么,要求的输出像素格式是什么 如果输入和输出的宽高不一致像素格式一致,则是在进行裁剪操
阅读全文
posted @
2025-05-21 16:00
飘杨......
阅读(58)
推荐(0)
H264/H265 NALU的nalu_unit_type解析
摘要:一、概述 在 H.264/H.265 编码中,视频数据被封装为一系列 NALU(Network Abstraction Layer Unit),每个 NALU 包含不同类型的数据(如 SPS/PPS 参数集、I 帧 / P 帧 / B 帧等)。 NALU 的结构如下: [Start Code] [N
阅读全文
posted @
2025-05-20 15:50
飘杨......
阅读(873)
推荐(0)
ffmpeg码率控制模式详解
摘要:一、概述 在视频编码中,码率控制是决定输出视频质量和文件大小的核心环节。不同的场景对码率和视频质量有不同的要求。所以非常有必要了解一下编码器是如何控制码率。 以便应对不同的应用场景。 二、码率控制模式说明 平均比特率 (ABR, Average Bitrate) 原理:编码器在整个视频中维持平均码率
阅读全文
posted @
2025-05-20 13:43
飘杨......
阅读(222)
推荐(0)
ffmpeg-H264/H265常用编解码预设参数
摘要:一、概述 不管是实时互动、直播、点播、还是离线渲染等场景都需要对视频文件进行编解码。且不同的应用场景对编解码的速度以及质量也是不同的,那么如何平衡速度与质量的关系以及选取合适的 应用场景就成为了关键。本节就简单介绍一下AVCodecContext->pre_data的预设参数的用法,来更好的视线视频
阅读全文
posted @
2025-05-20 11:59
飘杨......
阅读(230)
推荐(0)
Qt+FFmpeg+SDL 实现多路多格式原始视频播放工具:从像素处理到实时渲染
摘要:一、概述 本文基于 Qt、FFmpeg AVFrame 和 SDL 库构建的高性能多路多格式原始视频播放工具。系统支持同时播放 RGBA、ARGB、RGB24、YUV420P 等多种像素格式的原始视频流,核心技术包括: 多格式播放:直接播放的是原始视频文件,例如:RGBA、ARGB、YUV420P、
阅读全文
posted @
2025-05-19 17:51
飘杨......
阅读(94)
推荐(0)
SDL2+FFmpeg5.0播放视频文件
摘要:一、概述 上一节使用SDL2播放了YUV视频文件,本节使用SDL2+FFmpeg5.0播放一个视频文件(只播放视频,不播放声音) 播放效果图: 二、代码示例 #include "sdl_ffmpeg_play.h" //sdl刷新事件 #define SFM_REFRESH_EVENT (SDL_U
阅读全文
posted @
2023-11-16 11:47
飘杨......
阅读(117)
推荐(0)
Windows10+VSCode+cmake+opencv+ffmpeg+sdl2环境配置
摘要:一、概述 在Windows10上配置一个C++开发环境: 工具:VSCode 编译器:Mingw64(使用gcc进行编译) 构建工具:CMake 第三方库:集成OpenCV、FFmpeg、SDL2 二、操作步骤 1.安装mingw64并配置bin目录到环境变量 2.下载VSCode并安装 3.安装C
阅读全文
posted @
2023-11-10 17:03
飘杨......
阅读(1689)
推荐(0)
ffmpeg解码流程
摘要:一、概述 案例:编写一个ffmpeg编解码流程案例 ps:开发工具是Qt Creator 并且在Qt中做的测试 二、图 三、代码示例 #include "xplayer.h" #include "ui_xplayer.h" #include <QDebug> #include <iostream>
阅读全文
posted @
2022-07-13 11:41
飘杨......
阅读(417)
推荐(0)
Android使用FFMpeg生成pcm格式音频,并利用AudioTrack播放出来
摘要:一、场景 1.可任意选择一个媒体文件(avi、mp4、ts、mp3),解析除媒体文件的音频,并保存为pcm,然后利用AudioTrack播放pcm。 2.主要类介绍Java文件: a.PcmDecoder.java 用于和jni通讯的java类,里面定义了三个方法,初始化:init、解码:decod
阅读全文
posted @
2021-08-31 11:48
飘杨......
阅读(1211)
推荐(0)