一、前言

在vlc默认提供的保存文件方式中,通过打开的时候传入指定的参数来保存文件,直到关闭播放生成文件,这种方式简单暴力,但是不适用大部分的场景,大部分时候需要的是提供开始录制和停止录制的功能,也就是在播放过程中能够动态录制多个文件,想录制的时候就录制,要结束的时候就结束录制,很遗憾vlc并没有提供这样的函数接口。当然vlc内置类这样的功能,只不过没有开放出来,那如何实现呢,两种办法,一种办法是修改vlc的源码,加入对应函数和实现,然后重新编译生成新的vlc库以及头文件,一种是用var_ToggleBool函数触发按钮。网上几乎都是说要改源码来实现,这就有点不友好了,使用vlc来开发的大部分都是菜鸟级别,你觉得让他去编译vlc源码,这不是难于上青天吗?而且每个平台都需要重新编译,得不偿失。所以最终采用动态触发录制按钮的方式去实现。

用动态触发按钮的形式去实现也不是一帆风顺的,通过input-record-name字符串指定了文件名称不会生效,查阅代码发现vlc默认固定用内部的 INPUT_RECORD_PREFIX 定义去保存的文件,比如打开的2.mp4文件则保存的是 vlc-record-2022-11-04-14h07m43s-2.mp4-.mp4,可以发现前缀一样,中间部分是文件名称标识,而且前缀部分带了存储的时间,这下子思路就有了,只需要在文件保存结束后根据规则重命名文件就好。在监控系统中,很多时候需要的是按照通道名称来保存,但是哪个地址是哪个通道呢?有两个办法,一个办法是通过数据库查询数据对应关系,一个办法是在打开文件的时候指定meta-title即可,会按照指定的meta-title作为

Qt/C++音视频开发20-vlc内核动态保存录像文件(不需要重新编译源码)相关推荐

  1. 【Qt 开源音视频框架模块QtAV】03:QTAV主要接口展示以及播放器源码分享

    介绍 QtAV 是一个基于 Qt 和 FFmpeg 的跨平台.高性能多媒体播放框架,能够帮助你轻而易举地编写出一个播放器. [Qt 开源音视频框架模块QtAV]01:介绍.编译以及简单使用 因为网上使 ...

  2. 《音视频开发进阶指南:基于Android与iOS平台的实践》源码下载地址

    年前买了这本书,想看下随书源码,一开始从CSDN下载频道下载电子书+源码,但那个源码不是这边书的. 从网上找了一段时间,终于找到了(其实在书的前言/勘误和支持中有给出),作者展晓凯的相关网站如下: 作 ...

  3. FFmpeg 音视频开发 20 年

    感谢小编邀请,让我写下 FFmpeg 20 年这么有历史厚重的话题. 写文章其实比录视频教程要求高很多,要字斟句酌,逻辑严密,理论知识严谨.由于个人文笔实在有限,长期以来,不敢随便写文章,更不敢出书, ...

  4. 音视频开发 人脸标定 animoji 动态贴纸 小项目练习总结

    去年11月份,苹果发布了iphoneX, Animoji功能挺强大的.于是本人在音视频开发学员QQ群中发布了如何自己去做一个animoji,动态贴纸之类的应用的方法.很多同学都做了一些尝试. 但有一些 ...

  5. android lame音频转换,音视频开发02--使用LAME库转换pcm文件到mp3

    android 使用 AudioRecord 对麦克风进行录音得到的是 pcm 格式的原始音频数据,pcm文件是不能用来播放的,需要进行编码压缩. LAME是目前非常优秀的一种MP3编码引擎,在业界, ...

  6. Qt/C++音视频开发45-音视频类结构体参数的设计

    一.前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结 ...

  7. Android 音视频深入 十六 FFmpeg 推流手机摄像头,实现直播 (附源码下载)

    源码地址 https://github.com/979451341/RtmpCamera/tree/master 配置RMTP服务器,虽然之前说了,这里就直接粘贴过来吧 1.配置RTMP服务器 这个我 ...

  8. 【Qt 开源音视频框架模块QtAV】02:QTAV多功能播放器

    前言 在[Qt 开源音视频框架模块QtAV]01:介绍.编译以及简单使用中我们已经完成了QTAV的项目部署和简单案例的测试,下面我再分享下QTAV提供的播放器例程. 程序功能效果展示 演示的项目在QT ...

  9. 音视频开发基础知识到进阶剖析

    全网最强音视频开发教学--音视频开发基础知识到进阶剖析 1.要掌握多深的原理才能开始做项目 2.音视频基础有哪些必须掌握的 3.进阶需要学习什么项目 视频讲解如下,点击观看: 全网最强音视频开发--音 ...

最新文章

  1. 2018-3-7 HDFS架构
  2. 10个必会的 PyCharm 技巧
  3. char (*p3)[5] = a; 和char (*p4)[5] = a;的区别?
  4. Java 洛谷 P1219 八皇后
  5. 登录界面-安全密码设计
  6. 如何做好性能压测丨压测环境设计和搭建
  7. 韩顺平php视频笔记75-76 抽象类 接口
  8. 3.2 为超参数选择合适的范围
  9. 1392. Dreaming of Stars
  10. fiddler命令cls/select
  11. python字符串方法总结_python字符串使用方法总结
  12. 修改linux系统的open files参数
  13. warning: control may reach end of non-void function [-Wreturn-type]
  14. 超漂亮的CSS3按钮制作教程分享
  15. spring源码下载安装,导入idea以及编译报错问题详细解决过程
  16. C语言输入一个三位数,并将其逆序
  17. 计算机评语公式怎么输,excel公式写评语
  18. 完成静态服务器——Node.js摸石头系列之四
  19. 软件测试中的白盒测试分析
  20. 年收入10万的家庭怎么买保险最划算?

热门文章

  1. 计算机活动天窗,打开数学学习的天窗
  2. frp内网穿透——配置windows客户端
  3. 广告监测学习笔记(三)
  4. UA模拟QQ和微信客户端
  5. [luogu P3797] 妖梦斩木棒 [线段树]
  6. java安装教程(windows11)
  7. 写一份有卖点的英文履历
  8. 网名接龙之--引路人
  9. DirectoryInfo.GetFiles 过滤文件名
  10. while和do while区别?