草庐IT

系列推荐 |《最强的 VLC 多媒体开发教程》

一去丶二三里 2023-08-04 原文

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

专栏介绍

VLC 多媒体开发》,是一个专注于 libVLC 开发的专栏,里面共包含几十个章节,从 0 到 1,图文并茂,详细地介绍了 libVLC 的用法。

通过这个专栏,不但能掌握 Qt 的基础用法,还能了解音视频的一些核心概念,并熟练地使用 libVLC。最后,利用实战课程,你将可以快速打造一个属于自己的跨平台多媒体播放器。

毫不夸张地说,这是市面上最全面、最细致的 libVLC 教程,有理论、有基础、有实战,同时还附带了大量的示例/实战源码。

专栏目录

以下是专栏的具体内容:

  1. VLC-Qt 入门指南
  2. 关于 VLC
  3. 太不可思议了,竟然用交通锥当 logo!
  4. 快速掌握 VLC
  5. 在 Windows 下使用 libVLC
  6. Linux 下编译 VLC
  7. 最简单的 libVLC 播放器
  8. 将 libVLC 视频渲染到 QWidget 中
  9. 50 行 C++ 代码,助你实现梦幻桌面
  10. libVLC 事件机制
  11. libVLC 播放控制
  12. libVLC 媒体信息(元数据)
  13. libVLC 在视频上叠加透明窗体
  14. libVLC 视频截图
  15. libVLC 提取视频每一帧
  16. libVLC 捕捉鼠标事件(全屏/还原)
  17. libVLC 轨道信息
  18. libVLC 添加图片和文本水印
  19. libVLC 更改视频宽高比
  20. libVLC 视频裁剪
  21. libVLC 视频缩放

持续更新中 …

实战项目

项目一:梦幻桌面

实现属于自己的梦幻桌面(将动态高清视频做为桌面背景),让我们的桌面变得更加炫酷、更有个性。

项目二:跨平台多媒体播放器

制作一个跨平台多媒体播放器 - QVlc Player,该播放器还拥有大量丰富的功能,主要包括:

  • 支持本地音视频、网络串流
  • 支持播放/暂停、停止、音量调节、快进/倒退等操作
  • 支持播放速率的设置
  • 支持窗口模式的随意切换(全屏/退出全屏)
  • 支持视频缩放、宽高比调节、裁剪、截图等功能
  • 支持媒体信息的查询和修改
  • 支持字幕文件(例如:srt、ssa、ass)
  • 支持硬件加速解码(例如:自动、Direct3D11、DirectX、禁用)
  • 支持在线更新功能(检测新版本,并自动更新)

部分解图如下所示:




适宜人群

  • 希望掌握音视频/多媒体开发的初学者
  • 想要熟练使用 VLC/libVLC 的开发者
  • 对音视频领域感兴趣的工程师
  • 想快速开发跨平台多媒体播放器的人

一起学习

本专栏除了拥有丰富的教程、示例源码之外,还拥有相应的『音视频/多媒体开发交流群』,以快速帮助你进阶 libVLC。

如果你对专栏中的内容有任何疑问,或者想和更多人一起学习音视频/多媒体开发,欢迎添加我的微信(iwaleon),邀请你入群!

还在等什么,赶紧行动起来吧,和亮哥一起进阶音视频/多媒体开发!

有关系列推荐 |《最强的 VLC 多媒体开发教程》的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  4. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  5. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  6. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  7. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  8. ruby-on-rails - Rails 中的推荐引擎 - 2

    我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph

  9. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  10. 怎样用一台手机做自媒体? - 2

    其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时

随机推荐