Giter VIP home page Giter VIP logo

aes67-monitor's Introduction

AES67 Stream Monitor

Cross plattform AES67 monitoring app. The app was primarily tested in a hybrid Dante/AES67 environment. Features include:

  • Auto discovery of streams via Session Announcement Protocol and manually adding streams by pasting SDP data
  • Filter and sort streams
  • listen to streams by selecting which channels you want to listen to (Stereo and Mono supported)
  • wide format support: 44100Hz, 48000Hz and 96000Hz (and more) if the soundcard supports it, L16 and L24 PCM with up to 64 channels and all packet times according to AES67 spec are supported
  • Settings for Network interface, audio device, buffering for RTP and more

Here are some screenshots of how the app looks: Screenshot Screenshot Screenshot

Installation

git clone https://github.com/philhartung/aes67-monitor.git
cd aes67-monitor
npm install

The app should then be installed. Audify (audio backend used) prebuilds are available for most major platforms and Node versions. If you need to build Audify from source, see https://github.com/almogh52/audify#requirements-for-source-build.

After installation you can start the app with npm start.

Building

To build a binary for your system, first install the app and then run:

npm run build

This will create a folder for your platform and CPU architecture, containing the binary.

Status

This app is still in early development. Some things that need to be reworked before a more stable release include, but are not limited to:

  • rewrite RTP audio backend to support more audio formats (it is currently limited to 48000Hz L24 at 48 samples/packet and quite buggy, also add the option for buffering) done
  • rewrite SDP module and SAP backend done
  • proper support for settings done
  • make settings persistent between restarts
  • needs a lot more testing

Also I would like to add more features such as:

  • dBFS and LUFS metering
  • possibility to add streams from raw sdp done
  • RTP packet monitoring (like seqnum, timestamp, etc)
  • make the table sortable done

License and copyright notice

This repository contains code under the MIT License from twbs/bootstrap.

aes67-monitor's People

Contributors

philhartung 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

aes67-monitor's Issues

ARM support

Cross referenced on an issue of the lib audify. your lib dosent work wirh ARM on an Raspberry pi. Can you specyfie it in your readme that its x64? Because node runs on ARM so it would be assumed that you would support arm aswell but thats not the case so a specification would be lovely. almoghamdani/audify#9

2022-7 Support?

Hello,
If I paste a SDP in with 2022-7 redundant streams, the application says its invalid.

Example Stream :
v=0
o=- 00096332890001 0 IN IP4 10.41.135.102
s=ANXX.Tuner 1
t=0 0
a=clock-domain:PTPv2 127
a=ts-refclk:ptp=IEEE1588-2008:EC-46-70-FF-xx-xx-xx-04:127
a=mediaclk:direct=0
a=group:DUP ra0 ra1
m=audio 5004 RTP/AVP 98
c=IN IP4 238.135.102.1/5
a=source-filter: incl IN IP4 238.135.102.1 10.41.135.102
a=rtpmap:98 L24/48000/2
a=mid:ra0
a=framecount:48
a=recvonly
a=ptime:1
a=sync-time:0
a=mediaclk:direct=0
m=audio 5004 RTP/AVP 98
c=IN IP4 239.135.102.1/5
a=source-filter: incl IN IP4 239.135.102.1 10.42.135.102
a=rtpmap:98 L24/48000/2
a=mid:ra1
a=framecount:48
a=recvonly
a=ptime:1
a=sync-time:0
a=mediaclk:direct=0

Fails on Mac OS 10.13.6

npm install produces the error below:

ninja: build stopped: subcommand failed.
ERR! OMG Process terminated: 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: `cmake-js compile`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/ian/.npm/_logs/2021-04-14T20_20_44_307Z-debug.log
npm WARN [email protected] No repository field.
npm WARN [email protected] No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `prebuild-install || npm run rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/ian/.npm/_logs/2021-04-14T20_20_45_048Z-debug.log

The end of the log shows:

866 warn [email protected] No repository field.
3867 warn [email protected] No license field.
3868 verbose stack Error: [email protected] install: `prebuild-install || npm run rebuild`
3868 verbose stack Exit status 1
3868 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
3868 verbose stack     at EventEmitter.emit (events.js:315:20)
3868 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
3868 verbose stack     at ChildProcess.emit (events.js:315:20)
3868 verbose stack     at maybeClose (internal/child_process.js:1048:16)
3868 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
3869 verbose pkgid [email protected]
3870 verbose cwd /Users/ian/aes67-monitor
3871 verbose Darwin 17.7.0
3872 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
3873 verbose node v14.16.1
3874 verbose npm  v6.14.12
3875 error code ELIFECYCLE
3876 error errno 1
3877 error [email protected] install: `prebuild-install || npm run rebuild`
3877 error Exit status 1
3878 error Failed at the [email protected] install script.
3878 error This is probably not a problem with npm. There is likely additional logging output above.
3879 verbose exit [ 1, true ]

failing installation : electron

Hello,
Trying to install it, I get this error when "npm start"
`> [email protected] start /home/stream/Téléchargements/aesmonit/aes67-monitor

electron .

/home/stream/Téléchargements/aesmonit/aes67-monitor/node_modules/electron/index.js:14
throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
^

Error: Electron failed to install correctly, please delete node_modules/electron and try installing again
at getElectronPath (/home/stream/Téléchargements/aesmonit/aes67-monitor/node_modules/electron/index.js:14:11)
at Object. (/home/stream/Téléchargements/aesmonit/aes67-monitor/node_modules/electron/index.js:18:18)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/home/stream/Téléchargements/aesmonit/aes67-monitor/node_modules/electron/cli.js:3:16)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: electron .
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-06-07T13_00_19_037Z-debug.log
`
Could you please help me?
I'm on ubuntu 20.04
Many thanks

Redundant Streams are not recognized correctly

Redundant streams are not recognized correctly, as there are two mediatype definitions in the SDP. A SDP for a redundant stream might be similar to the following (adopted from [1]):

v=0
o=- 1311738121 1311738121 IN IP4 192.168.1.1
s=Stage left I/O
t=0 0
m=audio 5004 RTP/AVP 96
c=IN IP4 239.0.1.1/32
i=Channels 1-8
a=rtpmap:96 L24/48000/8
a=recvonly
a=ptime:0.125
a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:0
a=mediaclk:direct=963214424
m=audio 5004 RTP/AVP 96
c=IN IP4 239.0.2.1/32
i=Channels 1-8
a=rtpmap:96 L24/48000/8
a=recvonly
a=ptime:0.125
a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:0
a=mediaclk:direct=963214424

Implementing stream redundancy correctly is quite a big task and would need a lot of testing. As a workaround I will ignore the second mediatype definition to support redundant streams.

[1] https://www.aes.org/standards/comments/drafts/aes67-r-171107-draft-rev-cfc.pdf

Stream audio is silent

Some streams don't play any audio. I've added a stream from the following SDP. This particular stream works fine as a source in this tool: aes67-linux-daemon. I'm not sure what else I can tell you for troubleshooting, is there a log file? There is no indication of any error within the app. As soon as I click Listen the machine begins receiving RTP packets but I don't hear anything. Other sources of a similar format (L24/48000/8) work fine. Here's a Wireshark screenshot showing the packets being received. One unusual feature of this particular stream is that the source device sends multiple streams, each on a different UDP port, all using the same multicast destination address. Is that a problem here?

v=0
o=- 100 0 IN IP4 10.49.51.51
s=CP950 1-8
c=IN IP4 239.69.83.67/32
t=0 0
a=clock-domain:PTPv2 0
m=audio 6518 RTP/AVP 96
a=rtpmap:96 L24/48000/8
a=ptime:1
a=mediaclk:direct=0
a=ts-refclk:ptp=IEEE1588-2008:00-60-DB-FF-FE-01-02-CA:0
a=recvonly

Screen Shot 2022-01-19 at 21 31 16

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.