【视频】将yuv420p的一帧数据写入文件

在做视频渲染的时候经常需要将中间的yuv数据保存到文件中进行查看,下面的方法介绍了如何将yuv420p的数据写入到文件中:

cpp 复制代码
bool saveYuvFile(const std::string& filename, const uint8_t* yuvData, size_t width, size_t height)
{
    std::ofstream file(filename, std::ios::binary);
    if (!file)
    {
        return false;
    }

    size_t ySize = width * height;
    size_t uvSize = (width / 2) * (height / 2);
    
    // Reserve space for YUV data to avoid multiple reallocations
    file.seekp(ySize + uvSize * 2 - 1);
    file.write("", 1);
    file.seekp(0);

    // Write YUV data directly to the file
    file.write(reinterpret_cast<const char*>(yuvData), ySize + uvSize * 2);
    
    file.close();
    return true;
}
相关推荐
2301_776508723 分钟前
C++中的职责链模式实战
开发语言·c++·算法
sqyno1sky5 分钟前
C++中的空对象模式
开发语言·c++·算法
星轨初途6 分钟前
C++ 类和对象(下):初始化列表、static 成员与编译器优化深度剖析
android·开发语言·c++·经验分享·笔记
量子炒饭大师7 分钟前
【C++ 入门】Cyber动态义体——【vector容器】vector底层原理是什么?该怎么使用他?一文带你搞定所有问题!!!
开发语言·c++·vector·dubbo
学嵌入式的小杨同学8 分钟前
STM32 进阶封神之路(二十三):低功耗深度解析 —— 从睡眠模式到停机模式(底层原理 + 寄存器配置)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
yunyun3212311 分钟前
动态库热加载技术
开发语言·c++·算法
dapeng287012 分钟前
C++中的享元模式实战
开发语言·c++·算法
仟濹20 分钟前
【算法打卡day30(2026-03-23 周一)】BFSDFS孤岛题型-复习 & 第15届蓝桥杯省赛B组C++
c++·算法·蓝桥杯
不染尘.20 分钟前
拓扑排序算法
开发语言·数据结构·c++·算法·排序算法·广度优先·深度优先遍历
m0_5180194820 分钟前
高性能日志库C++实现
开发语言·c++·算法