网站建设和维护的教程,广州建站网络公司,wordpress菜单前面加图标,如何加强网站内容建设C#学习系列之image控件配合ffmpeg播放视频#xff08;bitmap转image#xff09;啰嗦ffmpeg输入格式与输出格式bitmap数据在image控件上显示数据转化总结啰嗦
关于音视频解码问题#xff0c;采用海思解码库进行解码#xff0c;存在C#托管调用动态库#xff0c;会出现卡顿的…
C#学习系列之image控件配合ffmpeg播放视频bitmap转image啰嗦ffmpeg输入格式与输出格式bitmap数据在image控件上显示数据转化总结啰嗦
关于音视频解码问题采用海思解码库进行解码存在C#托管调用动态库会出现卡顿的现象尝试采用新的方式来解决。刚好一个C的厂家用到了ffmpeg进行解码查阅到ffmpeg解码有打包好的C#接口库果断尝试起来。 本次主要介绍本地文件读入image控制显示视频帧。 ffmpeg输入格式与输出格式
本次视频采用的H265码流文件输入通常对于H265、H264码流都需要选取输入格式为AVPixelFormat.AV_PIX_FMT_YUV420P。 通过ffmpeg解码后输出采用AVPixelFormat.AV_PIX_FMT_BGR24进行输出。 ffmpeg输出的数据也就是convertedFrameBufferPtr这种类似指针类型的IntPtr类也可以将这种类型的数据直接转化为Mat类型的数据后期跟大家介绍IntPtr转Mat。
// 封装Bitmap图片
var bitmap new System.Drawing.Bitmap(width, height, dstLinesize[0], PixelFormat.Format24bppRgb, convertedFrameBufferPtr);这里已经是ffmpeg解码后转化为bitmap格式的数据。 这里的bitmap就是后续要进一步采用image控件进行显示的输入数据。
bitmap数据在image控件上显示
数据转化
将获得的bitmap数据转化成MemoryStream类然后再转化为bitmapimage类型。最终就可以直接将数据传送给image控件的输入。
MemoryStream ms new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);//bmp是已经获得的bitmap数据
byte[] bytes ms.GetBuffer();
ms.Close();
BitmapImage image new BitmapImage();
image.BeginInit();
image.StreamSource new MemoryStream(bytes);
image.EndInit();
this.imageD3D.Source image;总结
提示bitmap转image 总之就是数据之间的来回转化总结出来以便后续的查询与使用。 有问题欢迎留言来探讨