解码单个视频及保存yuv数据到文件中

使用ffmpeg实现解码并保存为yuv文件 通过ffmpeg实现解码并保存为yuv文件 /** * 抽取ffmpeg中的函数接口实现视频解码并保存 */ #define __STDC_CONSTANT_MACROS #include extern "C" { #include "libavutil/avutil.h" #include "libavcodec/avcodec.h" #include "libavforma 阅读详情


// 解码单路视频,并保存解码后的yuv数据到文件中去

// cudaDecode.lib是静态库文件,本程序实例展示如何调用此库文件相应接口实现解码功能




#include "iostream"
#include <tchar.h>
#include "windows.h"
#include "../header/cudaDecodeInterface.h"
//#pragma comment(lib,"cudaDecode.lib") // 链接到cudaDecode.lib

using namespace std;


HANDLE hand_cuda   = NULL;
bool   cuda_decodeEnd	= false;
FILE *fp = fopen("../decodePic/VideoSingle/videoSingle.yuv","wb");

int number = 0;

int CudaDecodeNotify(unsigned char* pDecodeData,int nDataSize,DWORD timestamp,int nEof)
{

//	fwrite(pDecodeData,1,nDataSize,fp);
	if(nEof)
	{
		OutputDebugString("thread 1 读包结束!!!\n");
		printf("-->thread 1 读包结束!!!\n");
//		fclose(fp);
		cuda_decodeEnd = true;
	}
	return 0;
}

void OnCuda()
{
	bool nstate = Cuda_SupportDecode();
	hand_cuda = Cuda_CreateDecoder();

	DWORD nTime = 0;
	if(Cuda_OpenFile(hand_cuda, "../data/720P/video0.m2v", CudaDecodeNotify)==1)
	{
		nTime = GetTickCount();
		p
视频解码原理及ffmpeg MP4转YUV420P 1. 为什么要进行视频压缩?   ● 未经压缩的数字视频的数据量巨大   ● 存储困难       ○ 一G只能存储几秒钟的未压缩数字视频。   ● 传输困难       ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟。 为什么可以压缩   ● 去除冗余信息       ○ 空间冗余:图像相邻像素之间有较强的相关性       ○ 时间冗余:视频序列的相邻图像之间内容相似       ○ ... 阅读详情

相关推荐

ffmpeg实战教程(一)Mp4,mkv等格式解码为h264和yuv数据

FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。而网上对这些功能的使用大多是基于命令行的。这不利于我们深入学习定制化ffmpeg,今后我将写一系列的用代码实现这些功能的教程供大家学习。这系列的前部分我打算写在windows上的实现,后部分写移植到Android系统上实现。 代码实现的前提是对ffmpeg源码有一定的了解,如果你不了解可以看这里 ffmpeg源

WangShuo的专栏 2万+

[学习笔记]基于ffmpeg的视频解码,输出YUV图像到文件。

虽然在音视频领域工作了一段时间,但是对于ffmpeg还是比较陌生,从这周开始入手学习。 拜读了雷霄骅的《最简单的基于FFMPEG+SDL的视频播放器 ver2》,受益匪浅,链接如下 http://blog.youkuaiyun.com/leixiaohua1020/article/details/38868499 采用文中的方法,利用ffmpeg的库对视频进行解码,在这里把步

面海烹鲜的博客 4857

YUV转成本地BMP图像保存

思路:借助LIBYUV先将其转成ARGB,再保存成本地文件 YUVToARGB YUV420ToARGB(char* src, char* dst, int width, int height) { uint8_t* src_y = (uint8_t*)src; uint8_t* src_u = src_y + width * height; uint8_t* src_...

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 1762

unity3d播放YUV420 视频 1 脚本

unity3d播放YUV420视频脚本unity3d播放YUV420视频脚本unity3d播放YUV420视频脚本

C++从YUV420序列中获得指定一帧数据(自带序列,可直接运行)

从YUV420序列中获得指定的一帧数据,内附有YUV序列和实例,可以直接运行。

H264码流保存为YUV数据 通过H264Visa软件转换-附件资源

H264码流保存为YUV数据 通过H264Visa软件转换-附件资源

手把手教你用Matlab实现Copula函数:从理论到代码的完整指南

本文提供了一份在MATLAB中实现Copula函数的完整实战指南。从理解Sklar定理和常见Copula家族(如高斯、t、Clayton)的核心概念出发,详细讲解了数据预处理、边缘分布拟合、概率积分变换等关键步骤。通过具体代码示例,手把手演示了Copula模型的拟合、评估、蒙特卡洛模拟,并进阶应用于金融风险度量(如VaR计算)和条件分布分析,帮助读者掌握这一强大的多变量依赖建模工具。

y9z0a1b的博客 952

JW01二氧化碳传感器实战:5分钟搞定Arduino环境监测系统(附完整代码)

本文详细介绍了如何使用JW01二氧化碳传感器与Arduino快速搭建环境监测系统。通过简单的硬件连接和完整的代码示例,读者可以在5分钟内实现CO2浓度实时监测,并了解数据解析、常见问题解决及进阶应用扩展。JW01传感器的高精度和易用性使其成为创客和嵌入式开发者的理想选择。

kite3的博客 381

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5825

工业缺陷检测的新范式:2025-2026年零样本检测技术全景扫描

摘要: 工业视觉领域面临缺陷样本稀缺、标注成本高等痛点,零样本缺陷检测(Zero-Shot Defect Detection)成为研究热点。2025-2026年的技术进展主要分为三类:1)视觉-语言模型(VLM)路线,如CLIP适配器跨域对齐热成像数据;2)数字孪生路线,通过CAD模型生成理想状态对比检测缺陷;3)基于CLIP的提示学习,如Crane模型通过上下文提示提升泛化能力。尽管实验室效果显著(如IoU达70%),但在真实工业场景(如MIRAD数据集)中性能平均下降29.78%,凸显跨域泛化仍是挑战。

blanokvaffy的博客 1143

从平面到立体:一张图看懂MOSFET、FinFET到GAAFET的演变史(附结构对比图)

本文深入解析了半导体晶体管从平面MOSFET到三维FinFET,再到全环绕栅极GAAFET的技术演进历程。通过结构对比图和物理原理分析,揭示了每一次创新如何解决短沟道效应等关键挑战,推动芯片性能提升。特别关注GAAFET作为最新技术突破的架构特点和性能优势。

weixin_30892037的博客 691

CubeMX配置ADC+DMA避坑实战:如何避免采样过快导致的系统崩溃

本文针对STM32开发中常见的ADC采样过快导致程序卡死问题,提供了基于CubeMX的实战避坑指南。通过分析ADC与DMA协作机制,详解时钟配置、采样时间、DMA缓冲区长度及中断设置等关键步骤,帮助开发者从源头规避系统崩溃风险,实现稳定可靠的数据采集。

weixin_28273593的博客 323

深入解析高通Adreno DPU的DRM/KMS驱动架构与硬件协同设计

本文深入解析了高通Adreno DPU的DRM/KMS驱动架构与硬件协同设计,详细介绍了Adreno DPU的核心模块组成、显示接口设计以及DRM驱动架构。通过实际案例和调试技巧,帮助开发者理解硬件与软件的协同工作原理,优化显示性能并解决常见问题。

weixin_29266679的博客 436

37、OpenMP:并行编程的强大工具

本文详细介绍了 OpenMP 的核心功能和使用方法,包括执行环境例程、线程同步与协调机制,如关键区域、屏障、原子操作、归约子句、刷新构造和锁机制。此外,还提供了多个实践练习,涵盖矩阵乘法的并行实现、任务池与流水线模式的应用、读写锁的扩展与移植,以及客户端-服务器模式的实现与优化。通过这些内容,读者可以全面掌握 OpenMP 在并行编程中的实际应用与性能优化技巧。

www00的博客 101

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 使用信号量控制线程执行顺序,进而控制不同视频流的解码顺序
下一篇: 为什么基类中的析构函数要声明为虚析构函数?
tkp2014
博客等级 码龄12年 137粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值