首页 > 其他分享 >Live555开源项目(1)----初步介绍

Live555开源项目(1)----初步介绍

时间:2024-03-22 19:24:44浏览次数:64  
标签:Live555 MPEG 音频 RTSP ---- 传输 开源 RTP 服务器

Live555开源项目(1)----初步介绍

小雨 小雨 爱民谣的程序员   23 人赞同了该文章

Live555背景介绍:

首先live555是一个开源项目,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。关于上述提到的协议可以参考我上一篇博文。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。总之,该开源项目代码可以应用到实时视频流传输,接受,强化,处理等操作。

Live555 官网如下:

http://www.live555.com/

其中技术底下写的四个模块,下面分别简单介绍。

 

 

LIVE555 Media Server [NEW]

Live555媒体服务器:

LIVE555媒体服务器”是一个完整的RTSP服务器应用程序。它可以流式传输几种媒体文件(必须存储在当前工作目录中 - 即,启动应用程序的目录 - 或子目录。)

 

 

另外,服务器可以同时传输多个流(来自相同或不同的文件)

默认情况下,服务器将其流作为RTP / UDP数据包进行传输。如果RTSP客户端请求,服务器将通过TCP流式传输其RTP(和RTCP)数据包。(这对于防火墙后面的客户端非常有用。)

一些非标准RTSP客户端 - 例如Amino机顶盒 - 请求原始UDP流,而不是标准RTP流。尽管如此,如果请求,此服务器将容纳此类请求,并通过raw-UDP流式传输MPEG传输流。

服务器支持某些(但不是全部)媒体类型的RTSP“特技播放”操作:

  • 暂停:所有媒体类型
  • 求: MPEG传输流 ; DV视频; WAV(PCM)音频; MPEG-1或2音频; MPEG-1或2个节目流(部分工作); Matroska或WebM文件
  • 快进: MPEG传输流 ; WAV(PCM)音频; MPEG-1或2音频
  • 反向播放: MPEG传输流 ; WAV(PCM)音频

 

该部分的源码是在整个开源代码里面的一部分。初步认知该服务器直接可以运行或者构建项目编译运行进行使用。

 

LIVE555 Streaming Media

基于标准的RTP / RTCP / RTSP / SIP多媒体流的源代码库,适用于嵌入式和/或低成本流应用。包括:

  • “ openRTSP TM ” - 命令行RTSP客户端
  • “ playSIP TM ” - 命令行SIP会话记录器
  • “ wis-streamer ” - 一款用于Linux WIS GO7007编码器驱动程序的开源流媒体服务器
  • RTSP / RTP流媒体播放器支持 “MPlayer”
  • “ vobStreamer TM ” - 网络DVD播放器(通过LAN传输DVD内容)

该代码使用开放标准协议(RTP / RTCP,RTSP,SIP)形成一组用于多媒体流的C ++库。这些库 - 可以为Unix(包括Linux和Mac OS X),Windows和QNX(以及其他符合POSIX的系统)编译 - 可用于构建流应用程序。这些库已经被用于实现诸如“ LIVE555媒体服务器 ”和“ LIVE555代理服务器 ”(RTSP服务器应用程序) 和“ vobStreamer ”之类的应用程序 “(用于使用RTP / RTCP / RTSP传输DVD内容)。这些库还可用于流式传输,接收和处理MPEG,H.265,H.264,H.263 +,DV或JPEG视频以及多个音频它们可以轻松扩展以支持其他(音频和/或视频)编解码器,还可用于构建基本的 RTSP 或 SIP 客户端和服务器,并已用于向现有媒体播放器应用程序添加流媒体支持,例如“ VLC ”和“ MPlayer ”。

源码包括各种库,每个库官方都有相应简单的描述。

另外对不同硬件平台的构建项目也进行了相应介绍。另外还有各种相应的示例程序以及例子。

liveCasterTM: A multicast MP3 streaming server

使用“ liveCaster ”通过多播传输MP3音频 - 即使使用低带宽的Internet连接也是如此。该目录下详细介绍了如何下载安装,使用教程以及如何接收来自liveCaster的数据。

liveCaster可免费下载和使用。(应用程序二进制文件不再具有过期日期,并且不再需要许可证费用来无限制地使用应用程序的所有功能。)

djifix TM

该目录最有意思,居然是为了大疆而创建的一个选项。说明大疆的国际地位如此之高。

修复损坏的DJI视频文件的软件。有时,如果您 在停止视频录制之前意外关闭 DJI四轴飞行器(Phantom,Mavic,Spark或Inspire),您将留下一个已损坏且无法播放的文件。用户手册建议: “将Micro-SD卡保留或放回相机。重新启动相机并等待约30秒钟以恢复视频文件。” 这通常有效,但有时您仍会留下损坏的文件。

此页面解释了该问题,并提供了可用于修复此类文件的软件。(命令行)应用程序“djifix”将修复损坏的DJI视频文件。请注意,此软件仅用于修复由DJI Phantom,Mavic,Spark或Inspire四轴飞行器(或DJI Osmo摄像机)生成的损坏视频文件; 它不是用于修复任何视频文件的通用软件。另请注意,视频文件必须是来自四轴飞行器SD卡的原始文件; 不是由其他“修复”软件生成的文件。如果你有软件开发工具(C编译器),你可以编译C程序“ djifix.c ”(在GNU GPL下发布)。

关于live555开源项目先介绍到这里,后续会继续研究一下源码。编写水平有限,感谢谷歌翻译。

 

 

 

 

 

发布于 2019-07-13 01:51

标签:Live555,MPEG,音频,RTSP,----,传输,开源,RTP,服务器
From: https://www.cnblogs.com/sexintercourse/p/18090282

相关文章

  • 让IIS支持flv,mkv等未知格式
    让IIS支持flv,mkv等未知格式2011年08月19日 作者 hkshadow要为特定扩展名定义MIME类型,请按照下列步骤操作:打开IISMicrosoft管理控制台(MMC),右键单击本地计算机名称,然后单击“属性”。单击“MIME类型”。单击“新建”。在“扩展名”框中,键入所需的文件扩展名(例如,.MKV)。......
  • Nginx配置搭建m3u8格式的视频播放服务
    Nginx配置搭建m3u8格式的视频播放服务 本文采用Nginx+FFmpeg来进行m3u8格式的视频播放服务,解决:nginx如何搭建视频服务器,要求流媒体服务,视频hls分片加载FFmpeg概念介绍FFmpeg是一个开源的计算机程序,可以用来记录、转换、编辑和流化数字音频和视频。FFmpeg的名称来自MPEG视频......
  • Http-Only Cookie
    Http-OnlyCookie  设置Cookie的时候,如果服务器加上了HttpOnly属性,则这个Cookie无法被JavaScript读取(即document.cookie不会返回这个Cookie的值),只用于向服务器发送。Set-Cookie:key=value;HttpOnly上面的这个Cookie将无法用JavaScript获取。进行AJAX操作时,XMLHtt......
  • Koa项目总结五:Koa项目中cookie和session的配置和使用
    Koa项目总结五:Koa项目中cookie和session的配置和使用joyitsai关注IP属地:山东0.282019.05.2623:52:45字数1,326阅读2,4751.Cookie介绍:Cookie是保存在浏览器中的数据,可以让我们在同一个浏览器访问同一个域名时共享cookie数据。1.1使用cookie,可实现的几个常用场景:......
  • 从ICAC 2024聊聊CIM trend
    从ICAC2024聊聊CIMtrend刚参加完今年在上海举办的ICAC2024,体验很好,从各位老师同学处学到很多。我是做CIM的,所以两个CIMSession一个不落,另外因为对Processor感兴趣,EffientDigitalCircuitSession和LowPowerSoCSession也去学习了一下。因为大部分工作在ISSCC上已经了解过......
  • 20240322打卡
    第四周第一天第二天第三天第四天第五天第六天第七天所花时间1h5h3h1.5h0h代码量(行)2123592745470博客量(篇)11111知识点了解Kotlin编写用户注册与登录功能jetpack的深入使用hilt依赖注入与kotlin协程等知识了解蓝桥杯题目练习osu......
  • elFinder的目录映射
     目录映射一级文件夹创建符号连接;选择源链接点在elFinder相应文件夹的空白处右击,选择「创建为」→「符号连接」修改php\\connector.minimal.php文件,新增一个项目卷。大约是在165行之后。修改'path’一行中的路径修改'URL'一行中的路径(与path中的保持一致)//......
  • 代码随想录算法训练营第五十四天| ● 392.判断子序列 ● 115.不同的子序列
    判断子序列 题目链接:392.判断子序列-力扣(LeetCode)思路:从子串s开始遍历,查找t中是否存在,因为全程不需要回溯,因此两个for循环就解决了。只是要注意return的时机。(只要不想写的很简洁,逻辑挺简单的其实)classSolution{public:boolisSubsequence(strings,stringt){......
  • 3.22毕设
    mybatisplus自动生成增删改查的代码,首先引入相关的依赖,代码生成器分为新版本和旧版本,我这里使用的时旧版本的 然后创建一个类,导入模板代码,再对内容进行细致的配置 运行之后只需要输入表名,调用mp提供的增删改查代码进行自己的操纵,下面是生成的项目目录  ......
  • L2-039 清点代码库
    没有想到map的key可以是数组类型,本质是vector模板中运算符的重载。1.==重载:判断两个数组是一样的,含义是两个vector大小相同,并且固定位置上的值要相等。//stl_vector.htemplate<classT,classAlloc>inlinebooloperator==(constvector<T,Alloc>&x,constvector<T,Al......