最简单的基于libVLC的例子:最简单的基于libVLC的推流器

article/2025/10/1 18:35:53

=====================================================

最简单的基于libVLC的例子文章列表:

最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器

最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版)

最简单的基于libVLC的例子:最简单的基于libVLC的推流器

=====================================================

本文记录基于libVLC的最简单的推流器。该推流器可以将本地的视频文件转码后推送至目标流媒体服务器(也可以是一个组播地址)。


最简单的基于libVLC的推流器


该推流器的代码十分简单,只用到了几个函数:

libvlc_new():创建libvlc_instance_t。
libvlc_vlm_add_broadcast():增加一个广播(broadcast)。
libvlc_vlm_play_media():播放指定名称的广播(broadcast)。
libvlc_vlm_stop_media():停止指定名称的广播(broadcast)。
libvlc_vlm_release():释放ibvlc_instance_t。

本示例的输入视频文件为“cuc_ieschool.flv”。这个推流器实现了:
  • 输入视频转码为H.264
  • 音频转码为mp2
  • 封装格式设置为MPEG-TS
  • 以UDP的形式发送至组播地址“udp://233.233.233.233:6666”
在程序发送广播的同时,会弹出一个窗口显示当前正在发送的视频。


源代码

/*** 最简单的基于libVLC的推流器* Simplest libVLC Streamer** 雷霄骅 Lei Xiaohua* leixiaohua1020@126.com* 中国传媒大学/数字电视技术* Communication University of China / Digital TV Technology* http://blog.csdn.net/leixiaohua1020** 本程序是一个最简单的基于libVLC的推流器。* 适合初学者学习libVLC。** This example is the simplest Streamer based on libVLC.* Suitable for the beginner of libVLC.*/#include <Windows.h>
#include "vlc/vlc.h"int main(int argc, char **argv) {libvlc_instance_t *vlc;const char *url;//Send File//Transcode it. Video codec use x264. Audio codec use mpga.//Mux it to mpegts format.//And stream it to udp://233.233.233.233:6666/*const char *sout = "#transcode{vcodec=h264,fps=25,venc=x264{preset=ultrafast,"\"profile=main,tune=zerolatency},vb=512,scale=0.5,"                        \"acodec=mpa,aenc=ffmpeg,ab=64,channels=2}"                                \":standard{access=udp,mux=ts,dst=233.233.233.233:6666}";*///Send and playing at same timeconst char *sout = "#transcode{vcodec=h264,fps=25,venc=x264{preset=ultrafast,"\"profile=baseline,tune=zerolatency},vb=512,"                              \"acodec=mpga,ab=64,channels=2}"                                           \":duplicate{dst=display,dst=standard{access=udp,mux=ts,dst=233.233.233.233:6666}}";const char *media_name = "Lei's test";//Screen Capture//url = "screen://";url = "cuc_ieschool.flv";vlc = libvlc_new(0, NULL);libvlc_vlm_add_broadcast(vlc, media_name, url, sout, 0, NULL, true, false);libvlc_vlm_play_media(vlc, media_name);//play 30s_sleep(30000); libvlc_vlm_stop_media(vlc, media_name);libvlc_vlm_release(vlc);return 0;
}


下载


Simplest libVLC Example


项目主页

SourceForge:https://sourceforge.net/projects/simplestlibvlcexample/

Github:https://github.com/leixiaohua1020/simplest_libvlc_example

开源中国:http://git.oschina.net/leixiaohua1020/simplest_libvlc_example


CDSN下载地址:  http://download.csdn.net/detail/leixiaohua1020/8342413

本工程是包含了一些基于libVLC的示例程序。一共包含了如下几个子程序。
playerGUI: 最简单的基于libVLC的播放器-图形界面版。
simplest_libvlc_example: 最简单的基于libVLC的播放器。
simplest_libvlc_streamer: 最简单的基于libVLC的推流器。


http://chatgpt.dhexx.cn/article/AIOa9Tcw.shtml

相关文章

C++调用libVLC播放视频

1、下载libVLC的sdk Index of /pub/videolan/vlc/ 注意下载.7z结尾的 2、Visual Studio建立C的windows控制台项目 3、文件准备 &#xff08;1&#xff09;sdk文件夹解压缩到项目文件夹下 &#xff08;2&#xff09;在Debug下方压缩包内的几个文件 、 4、配置项目属性 注意…

最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版)

最简单的基于libVLC的例子文章列表&#xff1a; 最简单的基于libVLC的例子&#xff1a;最简单的基于libVLC的视频播放器 最简单的基于libVLC的例子&#xff1a;最简单的基于libVLC的视频播放器&#xff08;图形界面版&#xff09; 最简单的基于libVLC的例子&#xff1a;最简…

基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流

此篇是 使用VLC浏览器插件播放RTSP流的姊妹篇。 一.直接使用libVLC libVLC是VLC media player多媒体框架的核心引擎和接口&#xff0c;开发者使用它能轻松的创建大量具有VLC特性的应用。 最简单的基于libVLC的例子&#xff1a;最简单的基于libVLC的视频播放器详细介绍了libVL…

最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器

最简单的基于libVLC的例子文章列表&#xff1a; 最简单的基于libVLC的例子&#xff1a;最简单的基于libVLC的视频播放器 最简单的基于libVLC的例子&#xff1a;最简单的基于libVLC的视频播放器&#xff08;图形界面版&#xff09; 最简单的基于libVLC的例子&#xff1a;最简…

用VLC开发视频播放器/组件(两种方式:libVLC / VLC-Qt)

测试环境 MSVC-2015Qt 5.14.2QCreator 1. libVLC&#xff08;关键步骤&#xff09; 参考&#xff1a;心流剑 libVLC 各版本 下载链接 我的下载版本为&#xff1a;3.0.11 sdk/lib文件夹目录 qmake vlc 部分的配置&#xff08;路径根据自己的修改&#xff09;只需要&#…

idea如何取消debug所有断点

1、debug模式下&#xff0c;在idea左下方找到【View Breakpoints】按钮或者直接按【CtrlShiftF8】快捷键&#xff0c;如下图&#xff1a; 2、在左侧窗口中&#xff0c;点击【Java Line Breakpoints】前方的全选框&#xff0c;如下图&#xff1a; 3、取消 【Java Line Breakp…

Idea断点for循环调试

前言 作为一个开发&#xff0c;最高兴和痛苦的事情就是排查问题&#xff0c;调试代码解决问题&#xff0c;掌握一些技巧可以提升效率&#xff0c;今天就讲讲for循环断点调试的技巧for循环断点调试 操作步骤&#xff1a; 1.在断点调试处加断点 2.点击断点处&#xff0c;鼠标右击…

IntelliJ IDEA-Debug断点调试 看这篇文章就够了

详解IntelliJ IDEA-Debug断点调试 如今&#xff0c;IntelliJ IDEA 目前深受广大开发者喜爱&#xff0c;我们在实际开发工作中&#xff0c;不管是用来阅读源码还是在开发过程中都需要进行代码调试。 以下为大家准备了一篇关于IntelliJ IDEA-Debug断点调试的文章&#xff0c;如…

IDEA 的基本介绍使用及断点调试

文章目录 1、IDE&#xff08;集成开发环境&#xff09;- IDEA2、IDE&#xff08;集成开发环境&#xff09;- Eclipse3、IDEA 的基本介绍和使用3.1、设置字体 和 颜色主题3.2、编译文件和源代码3.3、IDEA 常用快捷键3.4、模板/自定义模板 4、断点调试(debug)4.1、实际需求4.2、定…

idea debug调式进不了断点

问题&#xff1a; 在启动debug断点调试时&#xff0c;代码无法进入断点。 解决方案&#xff1a; 在网上搜索解决方案&#xff0c;看到说在settings——>Debugger下勾选如下位置即可。本人并未亲自测试&#xff0c;所以就做了一波搜集党。 我的解决方法&#xff1a;去掉如下…

idea断点调试jar包

本文以springbootdemo-0.0.1-SNAPSHOT.jar 为例&#xff0c;jar内容需与idea保持一致。 1、启动命令 常规jar启动&#xff1a;java -jar springbootdemo-0.0.1-SNAPSHOT.jar jar包断点调试启动&#xff1a;java -Xdebug -agentlib:jdwptransportdt_socket,servery,suspendn,ad…

如何在idea中打debug断点

在调试代码的时候&#xff0c;你的项目得debug模式启动&#xff0c;也就是点那个绿色的甲虫启动服务器&#xff0c;然后&#xff0c;就可以在代码里面断点调试啦。 下面不要在意&#xff0c;这个快捷键具体是啥&#xff0c;因为&#xff0c;这个keymap是可以自己配置的&#xf…

【IDEA 断点调试】

IDEA 断点调试 断点类型 行断点 【红色圆点】 点击左侧空白区域 、或 在行上ctrlF8 详细断点 【黄色圆点】 shift单击左侧空白区域&#xff0c;同时弹窗选择断点详细设置 方法断点 【红色菱形】 点击方法名所在左侧空白区域 。 进入方法后每一行都是挂起&#xff0c;打在接口…

IDEA debug 断点调试技巧

1、首先看下IDEA中Debug模式下的界面&#xff1a; ① 以Debug模式启动服务&#xff0c;左边的一个按钮则是以Run模式启动。在开发中&#xff0c;我一般会直接启动Debug模式&#xff0c;方便随时调试代码。 ② 断点&#xff1a;在左边行号栏单击左键&#xff0c;或者快捷键Ctrl…

IDEA 加断点debug时阻塞问题

今天有朋友提到一个问题&#xff0c;“我在springBoot项目中建一个Controller&#xff0c;然后写两个方法&#xff0c;方法1中加个断点&#xff0c;然后请求方法1&#xff0c;进入断点之后再请求方法二&#xff0c;此时方法二会一直等待&#xff0c;等方法一执行完才能再执行方…

Idea 进行断点调试的 快捷键

快捷键 功能描述 F8 单步调试&#xff0c;不进入函数内部 F7 单步调试&#xff0c;进入函数内部 ShiftF7 选择要进入的函数 ShiftF8 跳出函数 AltF9 运行到断点 AltF8 执行表达式查看结果 F9 继续执行&#xff0c;进入下一个断点或执行完程序 CtrlF8 设置/取消当前行断…

IDEA中断点调试

调试在开发中大量应用&#xff1a; 【1】Debug的优化设置&#xff1a;更加节省内存空间&#xff1a; 设置Debug连接方式&#xff0c;默认是Socket。 Shared memory是Windows 特有的一个属性&#xff0c;一般在Windows系统下建议使用此设置&#xff0c; 内存占用相对较少。 【…

idea debug无法打断点 以及解决办法

idea debug无法打断点 以及解决办法 今天工作中调试代码时候遇见一个问题 一行很普通的 map.put()代码 无法 进行断点调试 效果如图 出现这种情况大概有两种可能&#xff0c;一种是断点打在了错误的地方&#xff0c;程序进不到这里&#xff1b;第二种是有可能需要重新编译。…

IDEA的Debug断点调试

首先说一下我的IDEA的版本是windows Intelli IDEA2021.1.2 Debug 先打开IDEA中的Debug&#xff0c; 任意点击一个Debug的图标就可以打开下方的窗口 1.Debug模式启动服务&#xff0c;左边的一个按钮则是以Run模式启动。 2.断点&#xff1a;在左边行号栏单击左键即可建立一个断…

Intellij IDEA debug断点调试技巧总结

版本 IDEA 2019.3 主题&#xff1a;material dark。 操作系统&#xff1a;Mac OS command 对应 ctrloption 对于 alt 为项目配置了运行配置后&#xff0c;可以通过按 ShiftF9 在调试模式下启动它。 在 “调试工具” 窗口中&#xff0c;您可以看到框架和线程的状态、变量和表…