![Kombinieren Sie drei Live-Audiostreams zu einem Live-Audiostream](https://rvso.com/image/1438655/Kombinieren%20Sie%20drei%20Live-Audiostreams%20zu%20einem%20Live-Audiostream.png)
Ich habe drei Live-Audio-Feeds, die ich als einen kombinierten Audio-Stream weiterleiten möchte. Ich möchte alle drei Live-Audio-Feeds gleichzeitig hören, aber meine Heimverbindung ist durch die Daten pro Monat begrenzt, sodass ich lieber nur von einer Quelle streamen möchte. Deshalb möchte ich stattdessen einen Feed von meinem externen Server verwenden.
Ist es möglich, etwas wie ffmpeg zu verwenden, um dies zu erreichen, oder wäre es komplizierter?
Ich kann den Live-Audio-Feed in vielen Formaten empfangen. Die unterstützten Formate, in die gestreamt werden kann, sind Windows Media Player, Real Player, iTunes, Winamp, Web Player und ein Java Web Player. Es wird also kein Problem sein, einen unterstützten Feed-Typ zu erhalten.
Hier ist ein Beispiel für zwei der Feeds:
http://audio2.radioreference.com/342138428
http://audio7.radioreference.com/333108723
Ich möchte diese zu einem Feed zusammenfassen, also schalte ich ein aufhttp://example.com/radiostreamund ich hätte einen Stream. Der Feed liegt derzeit im MPEG-Format vor und die Ausgabe im exakt gleichen Codec ist völlig problemlos.
Antwort1
Das Mischen der beiden Kanäle ist trivial. Hier ist ein Test, der die beiden Kanäle mischt und eine Datei 500 Sekunden lang aufzeichnet, wobei der amix
Filter verwendet wird:
ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -filter_complex amix=inputs=2 -t 500 a.mp3
Dies ist einfacher als der amerge
Filter, der ebenfalls von der Kanalanordnung (links, rechts, Mitte usw.) abhängig ist. Obwohl dies auch funktionierte, wurde die Kanalverteilung ziemlich stark verändert:
ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -filter_complex amerge=inputs=2 -t 500 a.mp3
Streaming:
ffmpeg kann auf zwei Arten streamen.
- Direkt
- Zu einem anderen Server, beispielsweise Icecast
Sehendieser Leitfadenfür mehr Details.
Verwenden Sie Icecast mit dem Kennwort für die Quelle „hackme“ (Standard) und Port 8000 (Standard) als einem der Ports und starten Sie es mit:
icecast -c /usr/local/etc/icecast.xml
Natürlich wäre Ihrs:
icecast -c /path/to/your/icecast.xml
Verwenden Sie dann amerge
zum Füttern von Icecast:
ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -filter_complex amerge=inputs=2 -f mp3 icecast://source:hackme@localhost:8000/radio
Öffnen Sie VLC und stellen Sie eine Verbindung zum Streamen her.http://192.168.1.128:8000/radio(Das ist meine zugewiesene IP, Sie können localhost:8000/radio verwenden).
Sie können die beiden Streams hören. Mit amerge (anstatt amix) werden die beiden Streams nach links und rechts geschwenkt und sind leicht zu unterscheiden.
Zum Mischen von 3 Strömen verwenden Sie den amix
Filter:
ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -i <third stream> -filter_complex amix=inputs=3 -f mp3 icecast://source:hackme@localhost:8000/radio