最近在学习libvlc库,如下讲述如何播放网络或本地视频并进行视频录制的功能:
一、先看效果:

1-1、主界面:首先Init环境初始化,然后可选择播放网络流或是本地视频文件;

1-2、若播放网络流,则在Network左边的textbox中输入网络流地址,并通过Select Save Path选择录像的存储目录;
1-3、点击REC即可进行录制,录制存储的地址即选择的存储目录,如下图:
1-4、点击RECing...后,可在存储目录下找到刚才存储的视频;
1-5、也可点击Location进行本地视频播放;
二、详细:
2-1:需要使用带有视频录制的libvlc库,可参考: https://download.csdn.net/download/avsuper/9919212;
2-2:MediaPlyaer接口编写,可参考:https://blog.csdn.net/lassewang/article/details/52240894, 但是需要进行改写,如下:
①导入库函数进行添加:
[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
     internal static extern int libvlc_media_player_recorder_start(libvlc_media_player_t libvlc_media_player, IntPtr path);
[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
     internal static extern int libvlc_media_player_recorder_stop(libvlc_media_player_t libvlc_media_player);
如果喜欢改的话还可添加另一个函数(对于本例可不添加):

[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
     internal static extern void libvlc_media_add_option(libvlc_media_t p_md, String psz_option);

②共有函数中进行添加功能函数:

/// <summary>
        /// 视频存储开始
        /// </summary>
        /// <param name="libvlc_media_player"></param>
        /// <param name="url"></param>
        public static void Save_MediaPlayer(libvlc_media_player_t libvlc_media_player, string url)
        {
            IntPtr pMrl = IntPtr.Zero;
try
            {
                if (url == null ||
                    libvlc_media_player == IntPtr.Zero ||
                    libvlc_media_player == null)
                {
                    return;
                }
pMrl = StrToIntPtr(url);
                if (pMrl == null || pMrl == IntPtr.Zero)
                {
                    return;
                }
SafeNativeMethods.libvlc_media_player_recorder_start(libvlc_media_player, pMrl);
            }
            catch (Exception)
            {
               
            }
        }
/// <summary>
        /// 停止录像功能,存储
        /// </summary>
        /// <param name="libvlc_media_player"></param>
        public static void UnSave_MediaPlayer(libvlc_media_player_t libvlc_media_player)
        {
            try
            {
                if (libvlc_media_player == IntPtr.Zero ||
                    libvlc_media_player == null)
                {
                    return;
                }
                SafeNativeMethods.libvlc_media_player_recorder_stop(libvlc_media_player);
            }
            catch (Exception)
            {
throw;
            }
        }
这样就可以使用,libvlc的录像功能了,只需调用 Save_MediaPlaye和Un Save_MediaPlaye即可,(注:调用Save_MediaPlaye后并不会立即出现存储的视频,调用UnSave_MediaPlaye后就会在存储视频的地址找到存储好的视频)。
第一次写,有很多“规矩不了解,以后逐步进行完善。

源码:https://download.csdn.net/download/hopeless123/10311625

基于Libvlc库的视频录制功能简述(C#)相关推荐

  1. FFmpeg 开发(12):Android FFmpeg 实现带滤镜的微信小视频录制功能

    前文利用 FFmpeg 分别实现了对 Android Camera2 采集的预览帧进行编码生成 mp4 文件,以及对 Android AudioRecorder 采集 PCM 音频进行编码生成 aac ...

  2. Java集成腾讯云音视频录制功能

    Java集成腾讯云音视频录制功能 为什么要实现音视频录制功能 因为我们做的是一个医院的项目,医生和患者可能进行视频通话和语音通话,为了保证通话的质量以及后续的问题, 我们就需要进行音视频录制,以便后续 ...

  3. python微信加人_Python 基于wxpy库实现微信添加好友功能(简洁)

    Python 基于wxpy库实现微信添加好友功能(简洁) 更新时间:2019年11月29日 10:21:29 作者:帅鸽水煮鱼 这篇文章主要介绍了Python 基于wxpy库实现微信添加好友功能,本文 ...

  4. 基于wpa_supplicant库的WIFI连接功能实现--wpa_cli命令解析

    从这里开始,就正式进入到主题了,笔者分几节来介绍如何一点点实现基于wpa_supplicant库的WIFI连接功能.最终实现的就是类似于智能手机上的wifi连接界面功能.开发平台是linux3.2.0 ...

  5. RobotStudio软件:机器人仿真视频录制功能使用方法

    目录 功能介绍 屏幕录像机设置 仿真视频录制命令介绍 仿真视频录制操作 仿真视频查看方法 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 功能介绍 Rob ...

  6. DELMIA教程:仿真视频录制功能介绍与使用方法

    目录 功能简介 打开视频录制器 视频生成通用参数设置 视频图像采集参数设置 视频编码与播放参数设置 仿真视频录制操作 仿真视频播放 功能简介 使用DELMIA软件制作好的虚拟仿真项目,往往需要通过视频 ...

  7. 没加前后摄像头切换功能的视频录制功能

    这个是视频录制和拍照功能合到一个页面的初期版本,有助于更好地理解视频录制功能,但可能有预览黑屏和画面反转的问题: TakePicActivity.java: package com.haier.uho ...

  8. Android仿微信小视频录制功能(二)

    Android仿微信小视频录制功能(二) 接着上一篇,在完成了录制功能后,伟大的哲学家沃兹基索德曾经说过:"有录就有放.",那么紧接着就来实现播放功能,按照国际惯例,先上下效果图: ...

  9. Android仿微信小视频录制功能

    还没看完,应该还不错,先收藏,觉得可以开拓 https://blog.csdn.net/u012227600/article/details/50835633 -------------------- ...

最新文章

  1. Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法
  2. ubuntu配置dns
  3. mongodb的java驱动包_mongodb的java驱动包
  4. delphi 控件安装
  5. delphi glsence 教程
  6. Kepware助力数据中心对接楼宇自动化系统
  7. Googel knowledge graph API
  8. [RK3288][Android6.0] 调试笔记 --- 播放搜狐视频会Crash问题
  9. 最新版微型商城2.0版网站源码 带有一键安装
  10. Word中封面怎么设置不显示页码?
  11. [BJTU]C语言期中考试总结
  12. 同步软件UltraCompare 64位 软件及注册机
  13. 哪吒之魔童降世视听语言影评_动画电影《哪吒之魔童降世》艺术语言分析
  14. Android手机投影到电脑屏幕的神兵利器
  15. 《Qt5 Cadaques》学习笔记(六):QT QUICK Controls 2
  16. 云手机哪个好用最流畅?红手指、双子星、雷电云手机性价比推荐排行
  17. Windows上最良心也最强大的两款播放器—QQ影音、potplayer
  18. 王者荣耀微信查看服务器地址大全,王者荣耀微信如何查找自己所在大区 | 手游网游页游攻略大全...
  19. coco128训练YOLOv5
  20. 清华大学邓志东:自动驾驶的“感”与“知” - 挑战与机遇(附视频)

热门文章

  1. 反重力:科幻中的“常客
  2. 在线编辑神器WebOffice + aspose/spire一起开创Office远程办公新时代
  3. 画笔与橡皮擦—历史记录艺术画笔工具制作油画图像
  4. OPPOR9SKT_官方线刷包_救砖包_解账户锁
  5. vue中computed的详细讲解
  6. 计算机windows凭证无法保存,WIN7无法保存凭据导致共享打印机无法使用
  7. 【求助】Matlab调用AMEsim程序的S-function和AME2ClSim的区别是什么?
  8. 面试 14:合并两个排序链表
  9. 罗马数字转整数:探究古代数字编码的奥秘
  10. 【图像处理】【SEED-VPM】7.ubuntu10.04下 TFTP,NFS 安装指南