3 Star 5 Fork 3

南笺 / FFmpegPlayer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

FFmpegPlayer

核心是解决在使用WPF框架开发监控类系统、大规模摄像头或直播时无法做到高实时性、高性能、高并发和高复用性的痛点;如果是单画面并且对播放延迟性要求不高,建议还是用VLCSharp,毕竟牛批是真牛批;
(1)使用FFmpeg 4.4.1.1版本做解码(可以用最新的,但是最新的ffmepg官方不提供32位版本,得自己编译);
(2)使用D3D9渲染,支持离屏渲染,完全硬解硬画,最大程度降低CPU损耗;
(3)生命周期管理,所有的流都会通过PlayerCollection统一管理,实现自动重连,自动断开,自动销毁等机制;
(4)暂时不支持本地视频文件播放,目前只做了RTSP流的解码播放,流解码没做时间戳判断,所以如果播放本地文件会有问题;
(5)暂时不支持播放音频,因为没做,主要是播放摄像头的流,不关注音频;

部分内容参考一下链接: 《WPF D3DImage 偶现性无法渲染图像,D3D设备丢失的解决办法》

《C# WPF使用D3DImage渲染DXVA2解码数据》

《从零开始学习音视频编程技术》

FFmpegPlayerClient更改发布日志

V1.2.2

1、优化信号裁剪方案;

V1.2.1

1、新增缓存帧策略配置项;

V1.2.0

1.新增打印窗口可配置项
2.新增流地址缓存功能

FFmpegPlayerSharp更改发布日志

V1.1.7

1、修复缓存帧上限后播放花屏问题;

V1.1.6

1、降低UI线程执行优先级,避免渲染画面过多造成UI线程卡死无法正常操作;

V1.1.5

1.添加缓存帧上线自定义,最低为10帧;
2.调整帧缓存逻辑,缓存队列默认10帧,缓存超过5帧时非关键帧不写入缓存,缓存超过10帧时,所有帧不写入缓存,一直到缓存帧小于10帧;

V1.1.4

1.分离接收和解码线程,添加帧缓冲区,超过5帧未渲染直接丢弃;
2.降低UI线程渲染优先级,避免在输入信号过多造成UI线程被沾满无法正常操作问题;

V1.1.3

1.修复D3D渲染下拔插显示器HDMI线导致异常崩溃问题
2.优化代码

V1.1.2

1.修复流数据为空,但是流没断开情况下,使用WriteableBitmap绘制会报错问题
2.新增在流解码类中更新流大小

V1.1.1

1.解码失败后新增显示默认图片
2.添加解码失败帧数量配置

V1.1.0

1.修复D3D渲染模式下屏幕息屏或视频线断开后渲染报错问题
2.修复偶发出现渲染报错,提示绑定D3DImage为空问题;
3.新增UDP连接;
4.测试工具新增可视化配置;
5.Entrance配置项统一封装为一个对象管理;
6.集中所有UI线程,统一在Entrance中调用;
7.新增系统释放参数,用于释放所有死循环操作;
8.调整测试工具,16画面轮询页面新增轮询开关和轮询时长配置;
9.视频解码后第二个I帧之前的数据不渲染,避免第一帧显示花屏
10.优化代码

V1.0.6

1.优化代码
2.调整保存最后一帧逻辑
3.新增配置项:是否显示最后一帧画面

V1.0.5

1.新增16路随机轮询测试界面

V1.0.4

1.项目框架整理,剔除多余部分

V1.0.3

1.优化代码

V1.0.2

1.demo窗口资源整合
2.新增默认图片效果
3.新增断线默认显示最后一帧

V1.0.1

1.优化代码
2.支持离屏渲染
3.优化H.265渲染
4.修复渲染视频后生成的ImageSource图片尺寸不同问题;

V1.0.0

1.初始化仓库
2.代码新增
3.解决FFmpeg内存泄漏问题
4.自动适配D3D9和WriteableBitmap渲染
5.支持多路复用

空文件

简介

WPF 基于FFmpeg+D3DImage实现多路流轮播功能(支持流复用) 展开 收起
C#
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/joker_zz/ffmpeg-player.git
git@gitee.com:joker_zz/ffmpeg-player.git
joker_zz
ffmpeg-player
FFmpegPlayer
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891