Skip to content

Instantly share code, notes, and snippets.

@ThKr-FhG
ThKr-FhG / aes67.py
Created March 21, 2023 14:18 — forked from philhartung/aes67.py
Simple AES67 implementation using gstreamer. Does not implement any discovery.
import sys
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstNet', '1.0')
from gi.repository import Gst, GstNet, GObject, GLib
Gst.init([])
mainloop = GLib.MainLoop()
@ThKr-FhG
ThKr-FhG / ptp.py
Created March 21, 2023 14:16 — forked from philhartung/ptp.py
Sync to PTPv2 clock and send RTP according to AES67. SAP/SDP not implemented here.
import sys
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstNet', '1.0')
from gi.repository import Gst, GstNet, GObject, GLib
Gst.init([])
mainloop = GLib.MainLoop()
@ThKr-FhG
ThKr-FhG / dante-aes67-relay.js
Created March 21, 2023 13:43 — forked from philhartung/dante-aes67-relay.js
Relay a Dante multicast stream to AES67. This assumes the AES67 device is synced to the same PTP master, as no PTP timestamping is done (timestamp from Dante is copied to AES67 RTP packet)
const dgram = require('dgram');
const client = dgram.createSocket({ type: 'udp4', reuseAddr: true });
const sdp = require('./sdp');
//config
const addr = '10.10.1.100';
const danteMulticast = '239.255.220.221';
const aes67Multicast = '239.69.1.122';
const samplerate = 48000;
const channels = 2;