首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
ffmpeg dxva2 硬解 h264裸流
2024-11-03
基于FFmpeg的Dxva2硬解码及Direct3D显示(一)
目录 前言 名词解释 代码实现逻辑 前言 关于视频软解码的资料网上比较多了,但是关于硬解可供参考的资料非常之有限,虽然总得来说软解和硬解的基本逻辑一样,但是实现细节上的差别还是比较多的.虽然目前功能已实现,但是理解不到位的地方还是有的,文中我会抛出来,希望大神们不吝赐教. 上图大致说明了软解和硬解的流程,其中红色箭头表示需要在系统内存与显存之前进行IO,比较费时. 名词解释 FFmpeg:通俗理解就是一套包含视音频编解码.采集.转码及处理等功能的开源库,源码由C语言编写. Dxva2:就是Dir
利用FFmpeg 将 rtsp 获取H264裸流并保存到文件中
既然已经可以通过 RTSP 获取h264 裸流了.那么通过 FFmpeg 将其保存到文件中怎么做呢? 一.首先RTSP获取 h264 裸流 我们上面两篇文章主要讲的是通过 rtsp://Your ip:554/stream_chn0.h265 播放H.265视频流. PS:我刚试了一下,我的 FFmpeg 程序暂时不支持 h265 ... 之前编译的时候,只提供了 x264没有x265 如果感兴趣参看下面两篇文章添加. 参看:使用VS2015添加对ffmpeg添加h265 支持. 参看:ff
ffmpeg学习(二) 通过rtsp获取H264裸流并保存到mp4文件
本篇将使用上节http://www.cnblogs.com/wenjingu/p/3977015.html中编译好的库文件通过rtsp获取网络上的h264裸流并保存到mp4文件中. 1.VS2010建立VC++ win32控制台项目 2.在工程目录下建立lib目录和include目录,将已编译好的lib拷打lib下,include拷到include下,dll拷到Debug目录下 3.工程属性--配置属性--VC++目录--包含目录,添加ffmpeg头文件目录及其他第三方头文件目录 链接器--常
ffmpeg mediacodec 硬解初探
ffmpeg mediacodec 硬解初探 1编译: ffmpeg自3.1版本加入了android mediacodec硬解支持,解码器如图 硬件加速器如图(还不清楚硬件加速器的功能) 编译带h264_mediacodec版本的库需要开启以下选项 据网上博客所说,不同机器解码出来的数据格式不尽相同,这就导致解码出来后的数据,需要根据其类型来做转化,使用ffmpeg自带的转换函数非常简单通用,但是效率有待考察. libyuv中包含neon加速,但是不包含通用转换函数,需要自行判断类型,而且还
【嵌入式开发】用 VLC 显示 树莓派摄像头 H264 裸流
首先树莓派连上网络,并和电脑在同一网段. 树莓派的IP是: 192.168.3.13 电脑的IP是: 192.168.3.6 1.在树莓派上采集 H264裸流,并用UDP发送到电脑. pi@Neil-PI ~ $ raspivid -t 999999 -hf -o -| socat – udp-datagram:192.168.3.6:8080 如果没有安装 socat ,需要先安装 apt-get install socat 2. 在电脑上用VLC观看 H264裸流 Google了好久,才找
H264裸流分析中,能获取哪些信息?
从H264的裸流中,PPS,SPS中,一定可以获取到的,有图像的宽,高信息. 这部分信息的提取,用Stream eye 分析: 这里需要特别提一下这两个参数: pic_width_in_mbs_minus1 = 119(1920) pic_height_in_map_units_minus1 = 67(1088)分别表示图像的宽和高,以宏块(16x16)为单位的值减1因此,实际的宽为 (119+1)*16 = 352,高:(67+1)*16=1088 开始的时候,我还以为是哪里不对,1080
cuda+ffmpeg+opengl解码rtsp h264码流多路
Cuda 解码 全尺寸 解码 .全尺寸窗口绘制测试( 分别 测试 视频 文件和 IP 相机 实时视频 ) 1080 p 视屏 文件 全尺寸 解码 全尺寸 显示 72 0p IP 相机 全尺寸 解码 全尺寸 显示 (最多只能获取 6路)
H264裸码流I/P/B帧类型判别
花了两天时间做了个h264裸流nal类型和frame类型检测的工具,已上传至github,有需要的自行下载. 1.NAL类型检测 nal类型检测非常容易,对照下表即可容易判断类型. 较常用nal类型包括:SPS(7).PPS(8).IDR(5).SLICE(1). 而nal_type嵌在码流数据的nal_header(size=1Byte)中,占据据该字节的后五位bits. nal_header结构为:F(1bit) + NRI(2bits) + NAL_Type(5bits). 因此,用win
iOS-VideoToolbox硬编码H264
前言 VideoToolBox是iOS8之后,苹果开发的用于硬解码编码H264/H265(iOS11以后支持)的API. 对于H264还不了解的童鞋一定要先看下这边的H264的简介. 编码流程 我们实现一个简单的Demo,从摄像头获取到视频数据,然后再编码成H264裸数据保存在沙盒中. 1. 创建初始化VideoToolBox 核心代码如下 - (void)initVideoToolBox { dispatch_sync(encodeQueue , ^{ frameNO = 0; int wid
英伟达CUVID硬解,并通过FFmpeg读取文件
虽然FFmpeg本身有cuvid硬解,但是找不到什么好的资料,英伟达的SDK比较容易懂,参考FFmpeg源码,将NVIDIA VIDEO CODEC SDK的数据获取改为FFmpeg获取,弥补原生SDK不能以流作为数据源的不足.所用SDK版本为Video_Codec_SDK_7.1.9,英伟达官网可下载. 1.修改数据源 首先是FFmpeg的一些常规的初始化 bool VideoSource::init(const std::string sFileName, FrameQueue *pFram
【转】C#播放H264裸码流
原文地址:https://www.cnblogs.com/cangyue080180/p/5873351.html 要播放H264裸码流,可以分拆为以下三个工作: 1.解码H264裸码流获取YUV数据 2.将YUV数据转换为RGB数据填充图片 3.将获取的图片进行显示 要完成工作1,我们可以直接使用海思的解码库,由于海思的解码库是C++的动态库,要完成在C#中进行调用可以参考海思h264解码库这篇文章,介绍的很详细.但是对于该博文只介绍了一种帧解码的方法,并没有介绍真正实用的流式解码方法.自己根
C# 播放H264裸码流
要播放H264裸码流,可以分拆为以下三个工作: 1.解码H264裸码流获取YUV数据 2.将YUV数据转换为RGB数据填充图片 3.将获取的图片进行显示 要完成工作1,我们可以直接使用海思的解码库,由于海思的解码库是C++的动态库,要完成在C#中进行调用可以参考海思h264解码库这篇文章,介绍的很详细.但是对于该博文只介绍了一种帧解码的方法,并没有介绍真正实用的流式解码方法.自己根据解码库的参考文档写了一份C#版的流式解码算法. //初始化 // 这是解码器输出图像信息 hiH264_DEC_F
【视频开发】【CUDA开发】英伟达CUVID硬解,并通过FFmpeg读取文件
虽然FFmpeg本身有cuvid硬解,但是找不到什么好的资料,英伟达的SDK比较容易懂,参考FFmpeg源码,将NVIDIA VIDEO CODEC SDK的数据获取改为FFmpeg获取,弥补原生SDK不能以流作为数据源的不足.所用SDK版本为Video_Codec_SDK_7.1.9,英伟达官网可下载. 1.修改数据源 首先是FFmpeg的一些常规的初始化 bool VideoSource::init(const std::string sFileName, FrameQueue *pFram
H264码流中SPS PPS详解<转>
转载地址:https://zhuanlan.zhihu.com/p/27896239 1 SPS和PPS从何处而来? 2 SPS和PPS中的每个参数起什么作用? 3 如何解析SDP中包含的H.264的SPS和PPS串? 1 客户端抓包 在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示: 在这里我们可以看到对解码视频起关键作用的SPS和PPS. 双击SPS内容如下: 双击PPS内容如下: 那么从上面的sps中我们知道图像的宽,高. 宽=(19+1
H264编码原理以及I帧、B和P帧详解, H264码流结构分析
H264码流结构分析 http://blog.csdn.net/chenchong_219/article/details/37990541 1.码流总体结构: h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL).H.264 的编码视频序列包括一系列的NAL 单元,每个NAL 单元包含一个RBSP.一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code 用于标示这是一个NA
(转)MP4文件两种格式AVC1和H264的区别及利用FFMPEG demux为h264码流事项
出自:http://www.mworkbox.com/wp/work/314.html 2013-05-04 MP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略.笔者也是在改编LIVE555流媒体时,增加mp4文件类型支持时遇到了该问题. (一)首先,从原理上了解一下这2种格式的区别:AVC1 描述:H.264 bitstream without start codes.一般通过ffmpeg转码生成的视频,是不带起始码0×00000001的.H264 描述:H.2
(转)RTP协议全解(H264码流和PS流)
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢. 互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持. 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1.RTP Header解析 图1 1) V:RTP协议的版本号,占2位,当前协议版本号为2 2) P:
RTP协议全解(H264码流和PS流)
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢. 互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持. 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1.RTP Header解析 图1 1) V:RTP协议的版本号,占2位,当前协议版本号为2 2) P:
全志Tina_dolphin播放音视频裸流(h264,pcm)验证
最近在验证tina对裸流音视频的支持,主要指h264视频裸流及pcm音频裸流. 在原始sdk中有针对很多video和audio类型的parser,但就是没有找到pcm和h264的parser,所以需要自己搞个parser,同时找到audio播放的的接口写个demo来验证. 所有支持解析类型的parser方法都在目录:/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/libcore/parser下 aac Android.
iOS硬解H.264:-VideoToolboxDemo源码分析[草稿]
来源:http://www.cnblogs.com/michaellfx/p/understanding_-VideoToolboxDemo.html iOS硬解H.264:-VideoToolboxDemo源码分析[草稿] iOS硬解H.264:-VideoToolboxDemo源码分析 -VideoToolboxDemo为VideoToolbox的简单应用示例. 1 - 初始化 (一)初始化FFmpeg SuperVideoFrameExtractor类提供了两个初始化方法, initWit
热门专题
properties 使用多环境
angular xlsx解析
如何进入安装目录输入内容
C#中string.format实例用法
springboot 只有图标
vue获取java服务端数据
flask在其他文件中添加路由
windows 设置进程搜寻动态库的路径
docker 运行linux命令
各国语言编码utf8处理 php
ide 取消保存时自动格式化
C# 跨语言 com
arcgispro导入BIM制作的边坡支护模型
华为交换机设置telnet登录
https地址怎么配置
java 获取用户访问的设备信息
bs4 select选择器
python延迟执行
matlab保存当前图片并清空
虚拟陪伴app系统功能