文档章节

C#用VLC “全屏” 播放视频(有误)

天体图
 天体图
发布于 2017/08/02 16:46
字数 680
阅读 953
收藏 0

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

今天不小心回来看见自己这篇记录,全屏应该说的是“视频播放时拉伸至整个控件”,当时表述有误,而且文中描写的方法也不是太好。目前我使用FFmpeg+SDL2重新写了一个播放器,不用VLC控件了,一个是加载那些vlc解码库(又大)麻烦,另一个原因是自己写播放器可控性强一点。

=====

工作还没完成,大概记录一下吧!

用VLC播放视频时,它总是保持着原有比例,并不铺满控件。

网上照了一些方法,有的人说libvlc_set_fullscreen,其实这是真的全屏幕,我也没研究过,用法比较复杂,不是简简单单的调一个函数就能实现的,具体看官方说明。

有的人说libvlc_video_set_aspect_ratio,但是我看别人说只有第一次可以按照自定义长宽比,第二次设置没用,那么在控件大小变动后,就无法实现铺满整个控件了。但是在控件大小不变或者比例不变的情况下,应该是可以用的。

设置这个长宽比我也没有试过,因为当时我已经抄了第三种方式的大量代码,不想就这么放弃。

第三种方式也是参考网上的,主要流程是设置libvlc_video_set_format和libvlc_video_set_callbacks,利用video回调函数,处理每一帧图像,把它输出到控件上。

LIBVLC_API void libvlc_video_set_callbacks ( libvlc_media_player_t *  mp,
    libvlc_video_lock_cb  lock,
    libvlc_video_unlock_cb  unlock,
    libvlc_video_display_cb  display,
    void *  opaque 
  )

参考资料:http://www.cnblogs.com/smartsensor/p/4343769.html

大致是如这位大神所说,但是我实际使用中发现,它调用回调函数的顺序并不是按照libvlc_video_lock_cb 、libvlc_video_display_cb 、libvlc_video_unlock_cb 这样的顺序执行的,而是先unlock后display,这应该算是一个坑吧,我按照大神的代码总是走不进display回调,调试之后才发现的。

然后,我就把他的代码拷贝拷贝,将回调函数中获得的图像指定为控件的背景(控件背景的显示模式为拉伸),就实现了视频以拉伸的形式展示在控件上了。

最后检查一下有没有内存泄露什么的,就打开任务管理器,放一段视频,看看内存使用率会不会升高什么的。

© 著作权归作者所有

天体图

天体图

粉丝 16
博文 5
码字总数 4734
作品 0
南京
私信 提问
加载中

评论(0)

.NET 使用 VLC 播放视频

使用 VLC 播放监控有几个月了,现在是多个项目中都有用到。在使用的过程中也有一些细节供大家参考。 一、对 VLC 的了解 VLC 是一个开源的跨平台多媒体播放器及框架。 VLC 官方出的有播放器、...

osc_6093h42a
2019/09/10
11
0
VLC媒体视频播放器 v3.0.2官方版

https://www.videolan.org/ VLC media player http://www.pc6.com/softview/SoftView_52483.html VLC媒体播放器 v3.0.2官方版 PS:画质播放器 MPV 视频播放器,启动快,强烈推荐 https://ww......

osc_yfquc6et
2018/05/09
7
0
iOS开发之视频播放

1、如何播放视频 iOS提供了MPMoviePlayerController、MPMoviePlayerViewController两个类,可以用来轻松播放视频和网络流媒体网络音频。 提示:网络音频同样使用此控制器播放。YouTobe就是用...

feng_blog
2015/08/31
304
1
VLC 0.9.9发布,1.0版蓄势待发

最好的开源视频播放器VLC至今下载数量已接近5000万次,4月2日 它正式发布了0.9.9版。主要特性包括:修正Windows上多屏幕全屏显示问题,改进了基于英特尔处理器的苹果电脑视频性能,解码器更新...

红薯
2009/04/05
955
0
C#开发可播放摄像头及任意格式视频的播放器

前言 本文主要讲述,在WPF中,借助Vlc.DotNet调用VLC类库,实现视频播功能,下面我们先来做开发前的准备工作。 准备工作 首先,我们创建一个项目WpfVLC,然后,进入Neget搜索Vlc.DotNet,得到...

kiba518
2019/08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

队列关系图

Joker上上签
今天
24
0
解决LeanCloud流控问题以及配置DaoVoice

最近hexo博客的评论系统valine遇上一点问题,本篇就来记录下我的解决方法。 1 LeanCloud流控问题 如果用valine评论系统的同学最近打开valine部署的日志可能会发现诸如此类的信息。 事实上我在...

胖胖雕
今天
17
0
深源恒际二代信用报告OCR产品入选百度云市场优选商城

本文作者:cloudmarket 近日,深源恒际二代信用报告OCR产品入选百度云市场优选商城,用户可通过百度云市场优选商城入口0元试用相关产品。 百度云市场优选商城是从云市场合作伙伴中精选而出,...

百度开发者中心
昨天
14
0
什么是反射,为什么有用? - What is reflection and why is it useful?

问题: What is reflection, and why is it useful? 什么是反射,为什么有用? I'm particularly interested in Java, but I assume the principles are the same in any language. 我对Jav......

javail
今天
17
0
URL 中文链接 编码错误 完美解决

直接上代码 str = "%25E4%25B8%25AD%25E6%2596%2587";console.log(str);str =decodeURIComponent(decodeURIComponent(str));console.log(str); 输出结果 %25E4%25B8%25AD%25E6%2596%25......

放只虎归个山
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部