Giter VIP home page Giter VIP logo

easydarwin / easypusher Goto Github PK

View Code? Open in Web Editor NEW
792.0 83.0 391.0 102.03 MB

免费组件:简单、高效、稳定、免费的一款标准RTSP/RTP协议直播推送库,支持将H.264/H.265/G.711/G.726/AAC等音视频数据推送到RTSP流媒体服务器(例如EasyDarwin)进行低延时直播或者视频通信,支持Windows、Linux、ARM、Android、iOS等平台,EasyPusher配套EasyDarwin流媒体服务器、EasyPlayer RTSP播放器适用于特殊行业的低延时应急指挥需求! Android迁移到了https://github.com/EasyDarwin/EasyPusher-Android , iOS迁移到了https://github.com/EasyDarwin/EasyPusher-iOS

Home Page: http://www.easydarwin.org/

C 41.97% C++ 57.73% Shell 0.08% Makefile 0.16% Objective-C 0.05% Batchfile 0.01%
easypusher-easydarwin easydarwin rtsp-annouce easypusher rtsp-push live555-announce

easypusher's Introduction

EasyDarwin开源流媒体服务器

主要功能特点

安装部署

  • 直接下载运行Release包

  • 直接运行(Windows)

    EasyDarwin.exe

    Ctrl + C 停止服务

  • 以服务启动(Windows)

    ServiceInstall-EasyDarwin.exe

    以 ServiceUninstall-EasyDarwin.exe 卸载 EasyDarwin 服务

  • 直接运行(Linux/macOS)

      cd EasyDarwin
      ./easydarwin
      # Ctrl + C
    
  • 以服务启动(Linux/macOS)

      cd EasyDarwin
      ./start.sh
      # ./stop.sh
    

二次开发

准备工具

    # go tools
    go get -u -v github.com/kardianos/govendor
    go get -u -v github.com/penggy/gobuild

    # npm tools
    npm i -g apidoc
    npm i -g rimraf

编译命令

  • 获取代码

      cd $GOPATH/src/github.com
      mkdir EasyDarwin && cd EasyDarwin
      git clone https://github.com/EasyDarwin/EasyDarwin.git --depth=1 EasyDarwin
      cd EasyDarwin
    
  • 以开发模式运行

      npm run dev
    
  • 以开发模式运行前端 Run as dev mode

      npm run dev:www       
    
  • 编译前端 Build www

      cd web_src && npm i
      cd ..
      npm run build:www
    
  • 编译 Windows 版本 Build windows version

      npm run build:win
    
  • 编译 Linux/macOS 版本 (在 bash 环境下执行) Build linux/macOS version

      npm run build:lin       
    
  • 清理编译文件 Clean

      npm run clean 
    

技术支持

  • 邮件:[email protected]

  • QQ交流群:965773206

  • EasyDarwin开源流媒体服务器是属于EasyDarwin开源团队的免费产品,大家免费使用,同时,EasyDarwin开源团队也能提供相应的收费技术咨询、技术服务和技术定制,谢谢大家支持!

获取更多信息

EasyDarwin开源项目:www.EasyDarwin.org

Copyright © EasyDarwin.org Team 2012-2024

easypusher's People

Contributors

arnowang avatar arron1987 avatar babosa avatar bryant1410 avatar jinlong0813 avatar kidloserme avatar qict2004 avatar swordtwelve avatar wellsen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easypusher's Issues

EasyPusher_FILE这个demo有异常

利用EasyPusher_FILE这个模块向服务端easydarwin推送MP4文件,播放只有声音,没有画面。通过调试,发现服务端无法获取视频信息。而EasyPusher-1.2.16.1105这个版本推送视频正常,但是音频又不对。想请问一下,是不是这个库文件某个地方有bug

EasyPusher_RTSP 拉流UDP视频数据不能播放

远端RTSP服务器 使用UDP传输发送H264视频, VLC 设置 --no-rtsp-tcp 播放正常, EasyPusher_RTSP 拉流Log显示正常,但是EasyDarwin sdp 无法播放视频流。

Pusher log:

Sending request: OPTIONS rtsp://172.16.3.14:8008 RTSP/1.0
CSeq: 2
User-Agent: EasyRTSPClient v1.0.16.0909 (LIVE555 Streaming Media v2016.05.20)

Received 121 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
Server: AirCraft RTSP Server
Cseq: 2
Content-Length: 0
Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE

Sending request: DESCRIBE rtsp://172.16.3.14:8008 RTSP/1.0
CSeq: 3
User-Agent: EasyRTSPClient v1.0.16.0909 (LIVE555 Streaming Media v2016.05.20)
Accept: application/sdp

Received 363 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
Server: AirCraft RTSP Server
Cseq: 3
Content-Length: 220
Content-Base: 172.16.3.14:8008/
Content-Type: application/sdp

v=0
o=- 0 0 IN IP4 172.16.3.14
s=Unnamed
i=N/A
c=IN IP4 10.168.17.56
t=0 0
a=recvonly
m=video 5006 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42C029;
a=control:trackID=1

20170228 165833 Channel[0] Got a SDP description: v=0
o=- 0 0 IN IP4 172.16.3.14
s=Unnamed
i=N/A
c=IN IP4 10.168.17.56
t=0 0
a=recvonly
m=video 5006 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42C029;
a=control:trackID=1

Press Enter exit...
Sending request: SETUP 172.16.3.14:8008/trackID=1 RTSP/1.0
CSeq: 4
User-Agent: EasyRTSPClient v1.0.16.0909 (LIVE555 Streaming Media v2016.05.20)
Transport: RTP/AVP;unicast;client_port=5006-5007

Received 255 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
Server: AirCraft RTSP Server
Cseq: 4
Content-Length: 0
Transport: RTP/AVP/UDP;unicast;destination=10.168.17.56;client_port=5006-5007;server_port=51811-53418;ssrc=3fa4dfef;mode=play
Session: 1185d20035702ca
Cache-Control: no-cache

20170228 165833 channel[0] Created a data sink for the video/H264 subsession
Sending request: PLAY 172.16.3.14:8008/ RTSP/1.0
CSeq: 5
User-Agent: EasyRTSPClient v1.0.16.0909 (LIVE555 Streaming Media v2016.05.20)
Session: 1185d20035702ca
Scale: 0.000000
Range: npt=0.000-

Received 158 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
Server: AirCraft RTSP Server
Cseq: 5
Content-Length: 0
RTP-Info: url=rtsp://172.16.3.14:8008/trackID=1;seq=0
Session: 1185d20035702ca

20170228 165833 channel[0] Started playing session
EasyStreamPusher_StartStream serverAddr[127.0.0.1] port[6554] videoCodec[28] audioCodec[0] samplerate[0] serverURL[rtsp://127.0.0.1:6554/easypusher_rtsp.sdp]
init sock: 0
Connecting...
IP address: 127.0.0.1
Connecting [127.0.0.1:6554]
Connected
Connect success
SEND[526]
ANNOUNCE rtsp://127.0.0.1:6554/easypusher_rtsp.sdp RTSP/1.0
CSeq: 1
User-Agent: EasyPusher v1.2.16.1105
Content-Type: application/sdp
Content-Length: 365

v=0
o=- 2205756022 2205756022 IN IP4 127.0.0.1
s=EasyDarwin
i=EasyDarwin
c=IN IP4 127.0.0.1
t=0 0
a=x-qt-text-nam:EasyDarwin
a=x-qt-text-inf:EasyDarwin
a=x-qt-text-cmt:source application::EasyDarwin
a=x-qt-text-aut:
a=x-qt-text-cpy:
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=
a=control:trackID=1

RECV[127]
RTSP/1.0 200 OK
Server: EasyDarwin/7.0.5 (Build/16.0518; Platform/Win32; Release/EasyDarwin; State/Development; )
Cseq: 1

SEND[176]
SETUP rtsp://127.0.0.1:6554/easypusher_rtsp.sdp/trackID=1 RTSP/1.0
CSeq: 2
User-Agent: EasyPusher v1.2.16.1105
Transport: RTP/AVP/TCP;unicast;mode=record;interleaved=0-1

RECV[315]
RTSP/1.0 200 OK
Server: EasyDarwin/7.0.5 (Build/16.0518; Platform/Win32; Release/EasyDarwin; State/Development; )
Cseq: 2
Cache-Control: no-cache
Session: 126409477471398
Date: Tue, 28 Feb 2017 08:58:40 GMT
Expires: Tue, 28 Feb 2017 08:58:40 GMT
Transport: RTP/AVP/TCP;unicast;mode=record;interleaved=0-1

SEND[150]
PLAY rtsp://127.0.0.1:6554/easypusher_rtsp.sdp RTSP/1.0
CSeq: 4
User-Agent: EasyPusher v1.2.16.1105
Session: 126409477471398
Range: npt=0.000-

RECV[220]
RTSP/1.0 200 OK
Server: EasyDarwin/7.0.5 (Build/16.0518; Platform/Win32; Release/EasyDarwin; State/Development; )
Cseq: 4
Session: 126409477471398
RTP-Info: url=rtsp://127.0.0.1:6554/easypusher_rtsp.sdp/trackID=1

RTSP interaction is complete. Prepare to send RTP...
*** live streaming url:rtsp://127.0.0.1:6554/easypusher_rtsp.sdp ***
Pushing to rtsp://127.0.0.1:6554/easypusher_rtsp.sdp ...Send data. Ret: 0
Pushing to rtsp://127.0.0.1:6554/easypusher_rtsp.sdp ...`

VS2017 编译错误

在使用 VS2017 打开 EasyPusher_Win\EasyPusher.sln 工程,经过SDK的升级,编译报错。
image

可以帮忙修复下么,感觉是没有找到 RTSP_FRAME_INFO 这样的定义。

直接在 win10 上运行github上编译好的程序,选择好本地文件,输出下面错误信息:
2020/12/07 20:20:20 MP4文件采集成功!
2020/12/07 20:20:20 推送EasyDarwin服务器URL:rtsp://localhost:554/stream0.sdp 失败!
2020/12/07 20:20:21 停止推送!
2020/12/07 20:20:22 本地预览停止

easypusher_win build error in vs2015

use VisualStudioConverter.exe convert vs 2010 project to vs 2015 project.
open /win/EasyPusher.sln and build it success,
but open /EasyPusher_Win/EasyPusher.sln build it error. this is error image

206de552-a3a8-4851-b49e-ff62042bdddc

easypusher_file 不支持指定文件名推送

不支持指定文件名推送,-h信息重复。

px@ts198:~/EasyDarwin-CentOS-x64-7.0.4-Build16.0108/Movies$ ./easypusher_file -h

Usage:

./easypusher_file [-d -p -n ]
Help Mode: ./easypusher_file -h

For example: ./easypusher_file -d 115.29.139.20 -p 554 -n easypusher_file.sdp

Usage:

./easypusher_file [-d -p -n ]
Help Mode: ./easypusher_file -h
For example: ./easypusher_file -d 115.29.139.20 -p 554 -n easypusher_file.sdp

只能在main函数中EasyPusher_Create()成功

c++项目,只能在main函数中EasyPusher_Create()成功,在其他线程中,使用类中的成员函数去调用EasyPusher_Create()会失败。
请各位老大解决,

辛苦!

EasyPusher支持sps/pps参数传入

目前的EasyPusher在ANNOUNCE的sdp中并未携带sps,pps,这个应当做为一个可选的参数传入,如果传入为NULL,则sdp不携带sps/pps,如果有传入,则需要在sdp中加入sps,pps;

java.lang.UnsatisfiedLinkError: No implementation found for void com.champion.mypush.push.EasyPusher.setOnInitPusherCallback(com.champion.mypush.push.EasyPusher$OnInitPusherCallback)

android端运行出现此问题,自己新建一个项目,import那个api的module,然后按照demo中的样子写了过来,和demo基本一模一样,jniLibs也放入那些so文件了,build.gradle与源文件一样,然后运行后出现上述错误。
上述错误一般是找不到so文件中的方法才会出现。不知道如何解决。

[FAQ] Bidirectional audio support

Hi,

Does EasyPusher SDK supports Bidirectional audio streaming ?

                        audio                audio                       audio
Camera with speaker   <======> EasyPusher  <========> EasyDarwin/Wowza <===========> Mobile

Thanks.

libEasyPusher 源码

请问 libEasyPusher 能开源吗?如果已经开源了,请告知获取的途径,谢谢。

或许因为各种原因无法开源,可以申请新的平台的 .a 文件编译吗,希望能添加 mips。

能否采集计算机的音频输出?

就像obs的音频输出采集功能,可以采集计算机输出的音频并进行推流?因为obs好像不支持推流到easydarwin(可能是我弄的不对),所以用easypusher但是貌似不能采集输出音频?

缺少使用说明

这么多开源项目,其实可以增加文档使用说明,这样开发者很快得搭建一个可以使用得项目。不然太零碎。

使用/Lib/hisiv300/libeasypusher.a的库,移植在hi3518ev200开发板上,使用TCP将视频流推送至EasyDarwin服务器,播放器能正常观看;但换为UDP后,log提示推送成功,但是播放器无法播放,不知是哪的问题?

遇到同样的问题,如何解决呢?我使用rtsp_pusher的SDK,使用TCP将视频流推送至EasyDarwin服务器,播放器能正常观看;但换为UDP后,显示的log和你的相同(推送成功),但是播放器无法播放,不知是哪的问题?

代码关键部分截图
image

log截图
image

Originally posted by @im11926 in #12 (comment)

部分设备关键帧间隔有问题

在LG G3(Android6.0+) 三星S6Edge+(Android6.0+)在编码时,关键帧产生的间隔过大,设置I_Frame_INTERFVAL为1,实际关键帧间隔大概30秒左右,导致播放端会画面中断、马赛克、打开画面过慢等问题。是否跟高版本使用MediaCodec有关系呢,还是摄像头获取数据应该通过Camera2接口类呢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.