Streaming: 5.1 Surround mit OSX

Softwarelösung zum mischen, aufzeichnen, abspielen, live-streamen von 5.1 Surround Audio unter OSX.

Komponenten

AU Lab
Zusatz zu Xcode. Enthält u.A. Beispielprogramme, die ein aufwendigeres Audiorouting ermöglichen. AU Lab
Soundflower
bietet virtuelle Audiodevices unter OSX, die 64-kanalige Version ist für Surroud Sound notwendig. Auf OSX 10.11 läuft die signierte Version.
Xcode Command Line Tools
Compilerwerkzeuge, notwendig um die Open Source Software aus pkgsrc zu installieren.
pkgsrc
Das Paketverwaltungssystem von NetBSD, portiert auf verschiedene Unix-ähnliche Systeme. pkgsrc.se gibt Überblick der enthaltenen Pakete.
libvorbis
Mehrkanalfähiger Codec für Audio. Open Source.
ffmpeg
Codierung und streamen von Audiodateien. Open Source.
icecast
Externer Streamingserver. Open Source.
audacity
Audioeditor, Bearbeitung von Mehrkanaldateien. Open Source.

Installation

  • Laden von Xcode oder Command Line Tools. Audiotools.
  • Installation von Soundflower.
  • Laden von pkgsrc. Installationsanweisung für OSX. Der Pfad für die Binaries sollte dauerhaft hinzugefügt werden, z.B. :
      cd ~
    
      echo 'export PATH=$PATH:~/pkg/bin:~/pkg/sbin' >> .bash-profile
    
  • Installation libvorbis:
      cd ~/pkgsrc/audio/libvorbis/
    
      bmake install clean clean-depends 
    
  • Installation ffmpeg:
      cd ~/pkgsrc/audio/ffmpeg2/
    
      bmake install clean clean-depends
    
  • Die Installation von icecast ist nicht notwendig, da ein externer Service genutzt wird, ist aber mit pkgsrc möglich.
  • Die Installation von audacity ist nicht notwendig, aber hilfreich zum editieren und anpassen von Mehrspuraudiodateien. pkgsrc.

Voreinstellungen

  • AU Lab Hauptmischer erzeugen. Externes Interface IN, Soundflower 64 OUT.
  • evtl. AU Lab Stereo Downmix erzeugen. Soundflower 64 IN Einzelkanäle, Soundflower 2 OUT.
  • ffmpeg Stream setup. Inspiriert durch dieses Script. :
      #!/bin/sh -xe
    
      # This is called when you ^C or an app quits. It kills all the processes.
      function cleanup() {
       trap "" EXIT INT
       [[ ! -z "$ffmpeg_pid" ]] && kill -9 "$ffmpeg_pid"
      }
    
      trap "cleanup" EXIT INT
    
      ffmpeg2 -f avfoundation -i "none:1" -vn -af "pan=5.1|c0=FL|c1=FR|c2=FC|c3=LFE|c4=BL|c5=BR" -codec:a libvorbis -b:a 128k -f ogg -legacy_icecast 1 -content_type application/ogg -ice_name "surround-stream" icecast://user:pass@std1.ladio.net:8010/ss &
    ffmpeg_pid=$!
    
      wait $ffmpeg_pid 
    
  • icecast2. Accounts z.B. bei giss.tv, ladio.net.

Betrieb

  • AULab Hauptmischer (und Stereo Downmix) aufrufen
  • ffmpeg Streaming client starten
  • vlc zum empfang