首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用C#+FFmpeg+DirectX+dxva2硬件解码播放h264

本文门槛较高,因此行文看起来会乱一些,如果你看到某处能会心一笑请马上联系我开始摆龙门阵 如果你跟随这篇文章实现了播放器,那你会得到一个高效率,低cpu占用(单路720p视频解码播放占用1%左右cpu),...device_create函数(这个函数是ffmpeg原始流程中的,我的改动不影响原本任何功能)中适时调用;简单来说,原来的ffmpeg也能基于dxva2硬件解码,但是它没法将解码得到的surface用于前台播放...--enable-shared --enable-small --disable-all --disable-autodetect --enable-avcodec --enable-decoder=h264...现在我们开始编写解码和播放部分(即我们的具体应用)代码 FFPlayer.cs 下面讲解代码最主要的三个部分 初始化ffmpeg   主要在静态块和构造函数中,过程中我没有将AVPacket和AVFrame...发现解码和播放过程中出现异常的解决办法 不支持硬解 代码中已经做出了一部分兼容,因为baseline的判定必须解出sps/pps才能知道,因此这个错误可能会延迟爆出(不过不用担心,如果此时报错,ffmpeg

3.3K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    流媒体播放播放h264编码视频与h265编码视频哪个更清晰?

    h265编码是h264编码的升级版,h265目前在视频点播方面使用的更加普遍,而在视频直播方面,由于难以达到h265编码的解码速度,运用起来还是有些难度的,还需要看未来我们的流媒体技术的发展。...那么既然出现了更加先进的编码技术,大家肯定会问了,h264与h265哪个更清晰?哪个画质好?本文我们就是来回答这个问题的。 ?...所以我们在理论上认为h265编码视频的播放h264编码视频的播放会更清晰,也就是说h265比h264画质好。但是这只是理论上,事实或许不同。...确实,h264和h265编码的视频目前给人感觉是“区别不大”,但是通过专用的视频分析工具就会发现两者的像素大有不同。 ?...流媒体播放播放h264编码视频与h265编码视频哪个更清晰本文就陪大家聊到这里了,目前我们流媒体播放器EasyPlayer和国标流媒体服务器EasyGBS已经支持了H.265编码视频播放,感兴趣的话可以进行体验

    2.2K10

    编译WebRTC时,如何通过ffmpeg发送H264视频流并实现播放

    最近TSINGSEE青犀视频开发人员在开发WebRTC的ffmpeg编译,在目前阶段已经开始着手对视频流的浏览器播放做开发。...对于WebRTC中H264编码而言,WebRTC主要是针对VP8和VP9编码协议进行传播。...下面我们和大家分享下怎么通过ffmpeg实现拉流,把拉到的H264裸流,通过WebRTC进行传播,并在浏览器实现播放。...1、使用ffmpeg拉H264裸流(部分代码) 2、使用WebRTC中h264_decoder_impl.h进行解码器调用 3、再通过WebRTC中OnFrame函数进行传播 4、浏览器效果如下图...TSINGSEE青犀视频在视频行业具备多年的开发经验积累,目前已经开发出了包括EasyNVR、EasyGBS、EasyCVR等视频平台在内的优秀流媒体服务器软件,并且也自主研发了支持H265编码格式的播放

    3.4K10

    旧版RTSP协议网页视频无插件直播EasyNVR视频平台为什么无法播放H264编码视频?

    RTSP协议视频平台EasyNVR经过了很多代的升级,目前已经支持H.265编码视频的播放,然而我们很多客户使用的还是旧版本的EasyNVR视频服务器软件(4.0.0之前的版本统称为旧版,均不支持H265...输入与播放),所以有一些旧版本上的问题目前有不支持的情况。...有位使用旧版EasyNVR的用户就向我们反馈道,在旧版不支持H265编码的情况下,已经将编码格式改成H264了,但是却还是无法播放。 ? ?...我们首先看下视频流本身是有没有问题的,可以从接口中取HLS的流在VLC中播放: ? 在VLC播放器中,该视频流也是不可以播放的: ? 然后我们检查下EasyNVR硬件设备的编码器信息。 ?...实际这里我们要注意一下,EasyNVR在设备切换编码格式之后,需要重新拉流,也就是说需要重新启用才能开始启用H264视频流。 重启之后就可以正常播放了。 ? ?

    90820

    H264之NALU解析

    一、H264简介: H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。...: 三、H264中I帧、P帧、B帧: 这块知识介绍在之前的文章里面有介绍,为了知识的完整性,今天这里再次介绍一下。...H264使⽤帧内压缩和帧间压缩的⽅式提⾼编码压缩率;H264采⽤了独特的I帧、P帧和B帧策略 来实现,连续帧之间的压缩: 帧的分类 中文 意义 I帧 帧内编码帧 (intra picture) I帧通常是每个...四、H264编码结构解析: H264除了对视频压缩处理之外,为了方便网络传输,提供了对应的视频编码和分片策略;类似网络数据封装成IP帧,在H264中将其称为组(GOP,gruop of pictures...)、片(slice)、宏块(Macroblock)这些一起组成了H264的码流分层结构;H264将其组织成为序列(GOP)、图片(pictrue)、片(slice)、宏块(Macroblock)、子块(

    2K10

    HLS 和 DASH 多编解码器和封装

    理想情况 在理想情况下,我们应该能做到: 将一组 fmp4 转码为 h264 和 h265 输出; 从一组转码的 h264 和 h265 输出中打包 HLS 和 DASH; 播放器选择他们支持的格式进行播放...多包解决方案 FuboTV 提出了一种多包解决方案(Multi package solution): 将一组 fmp4 转码为 h264 和 h265 输出; 使用 h264 和 h265 封装 HLS...; 封装 DASH h264 & 封装 DASH h265。...播放器对多 codec 的列表支持性 Apple/AVFoundation - 非常适合带有 h264 和 h265 的 hls; Exoplayer - 非常适合带有 h264 和 h265 的 hls...和 dash; Roku - 不支持,只能使用 roku 之前的单个编解码器播放列表 h265,支持 dash/hls 的其中一种,或 h264,支持 dash/hls 的某一种协议播放(截至 2020

    2.1K40

    RTSPRTMP直播系统中使用SEI传输用户自定义数据方案讨论

    , 通过h264 sei方式就可以把数据放入h264 Access Unit中传输。...到此为止SEI基本知识介绍完毕,如果要自己实现代码的话,还需要了解更多细节,建议仔细阅读h264文档,这里不再深入讨论,也欢迎一起交流讨论。接下来进入实践环节。...打开播放端SmartPlayer.exe查看数据传输播放效果: rtsp 传输文本信息: 1. 启动推送端软件: SmartPublisherDemo.exe 2....打开播放端SmartPlayer.exe查看数据传输播放效果: 总结 从上面的实验可以看出SEI的优势来, 第一个优势是并不依赖于相关协议,rtsp和rtmp都可以,其他协议只要播放端支持SEI...第二个是兼容性很好,如果播放端不支持自定义SEI数据解析,把SEI数据丢给H264解码器,解码器只是忽略掉,并不影响正常播放. 上述操作也可以用VLC来播放播放正常,只是不显示SEI消息而已。

    2.5K20

    缺陷定位 | 分析推理定位BUG案例(三)

    (一) 缺陷定位 | 如何精准效率分析推测BUG定位(二) 运营反馈,生产环境,WEB端管理后台,岗位审核详情,视频无法正常播放 表象: 立即去运营那边看了表象情况,点播放,视频有正常播放进度,有声音...,视频画面却一直停留在静态的封面,未正常播放视频 分析推理: 1、抓包对应的岗位id和岗位视频地址,使用视频地址在浏览器播放,视频有正常播放进度,有声音,视频画面是黑屏,说明是存在BUG的 2、我们把无法播放的视频下载下来...,用视频播放器打开也是可以正常播放的,说明视频存在兼容性问题 3、猜测是不是视频格式导致的无法播放,从数据库中找了同类型的视频地址,尝试在管理后台播放是正常的,又在浏览器尝试播放,是可以正常播放的,...MP4有四种编码格式(MPEG4(DivX),MPEG4(Xvid),AVC(H264),HEVC(H265));只有使用AVC(H264) 在各个浏览器上显示才是正常的,H264编码是MP4的标准编码...结论: 所以此问题解决方式可以通过视频上传时或者播放时,进行处理解编码处理,成为浏览器可正常播放H264标准编码。

    68940

    网络视频直播系统的H264格式编码器的概念是什么?

    ,但H264依然是主流的一种编码方式。...下面给大家普及一下关于H264格式的知识。...在网络视频直播系统中H264格式的编码器中其实是有两个层面,一个是VLC视频编码层,NAL层是网络抽象层,VLC主要任务就是编码,NAL层是负责格式化数据,而H264的每帧数据就是一个NAL单元,在H264...2061560095,2621546121&fm=26&gp=0.jpg 讲完了关于“帧”的概念,还有一个GOP概念,指的是两个I帧之间的图像组,现在有很多SDK都强调秒开,其实就是在服务端或CDN的边缘去缓存这一对GOP,缓存后就避免播放端在播放时找不到...为什么要缓存GOP呢,因为每个播放播放时对于H264解码首先需要一个I帧去显示图像,然后后面的P帧之类的依据I帧前面一帧的数据差,然后才能解码P帧出来显示完整图像,有了I帧之后显示出来速度就很快,给人秒开的感觉

    84820

    编码器对决:VP9 vs HEVC

    首先介绍了编码器的发展历史,1996年MPEG2出现,2003年H264/AVC出现,2008年VP8出现,2013年VP9和HEVC出现,2019年AV1出现,2020年VVC出现。...讲者介绍了H264、HEVC和VP9的一些基础信息。H264和HEVC都是ISO设计的,VP9是谷歌设计的。...H264支持浏览器最多,同时支持苹果和安卓系统;;VP9支持谷歌和火狐浏览器,只支持安卓系统。HEVC和VP9编码效率差不多,都超过了H264H264和HEVC都需要专利费用,HEVC更贵。...编码顺序和播放顺序不一样,先编码前后两帧,再编码中间帧。而VP9编码顺序和播放顺序相同,但是会编码一个超级帧,它可以解码出多个帧。...讲者还展示了Bitmovin编码使用的API,非常简洁,支持多种播放器。播放器会根据运行它的设备选择最佳的编码器,带来最大的带宽节省。

    2.5K22
    领券