Ik “zou graag een Teradek Cube willen gebruiken die is aangesloten op een uitzendcamera om te pushen naar een server met ffmpeg met een open RTMP-poort, en laat ffmpeg die feed opnieuw streamen naar een decoder met RTMP of RTSP.
Monaserver doet dit, maar ik moet deze functionaliteit dupliceren met ffmpeg. Ik zou de Cube als een server gebruiken, behalve dat hij zou kunnen uitzenden waar dan ook, dus poorten openen op elke locatie waar de camera naartoe gaat is geen optie. Onze decoder is een Teradek Slice. Alle andere suggesties over hoe je dit moet doen, worden zeer op prijs gesteld.
Bedankt!
Antwoord
U kunt FFmpeg als een RTMP-server gebruiken als volgt ffmpeg -f flv -listen 1 -i rtmp://localhost:1935/live/app -c copy rtsp://YOUR_RTSP_HOST
Opmerkingen:
-
-listen 1
zorgt ervoor dat FFmpeg fungeert als een RTMP-server bij gebruik met RTMP-protocol - Gebruik
rtmp://localhost:1935/live/app
als de RTMP-server-URL op de bron - U kunt elk playpad
rtmp://localhost:1935/any/thing
en elke poort - Het belangrijkste voordeel op deze manier is eenvoud, het nadeel is dat de server stopt als de bron stopt of coderingsfouten vertoont
- De andere optie is om nginx te gebruiken met nginx-rtmp-module
Reacties
- Perfect, heel erg bedankt. Als ik ' een applicatie zoals VLC zou willen gebruiken om de stream van de server te ontvangen, kan ffmpeg dan ook luisteren naar een verbinding en output naar de lokale poort 1935?
- Ja,
ffmpeg -f flv -listen 1 -i rtmp://localhost:8889/live/app -c copy -f flv -listen 1 rtmp://localhost:1935/live/app
, stel gewoon verschillende poorten in voor invoer en uitvoer - Nogmaals bedankt, dit is precies wat ik nodig heb. Tijdens het testen heb ik ' zowat elke combinatie van / live / app op de Teradek Cube en verschillende iOS RTMP streaming video-apps geprobeerd om dit te testen, en ffmpeg reageert niet terwijl monaserver werkt. Is ' app ' de sleutel, en moet live worden opgenomen in de client ' s url?
- Wilt u uitweiden hoe u de RTMP-URLs instelt in Cube, iOS-apps en Monaserver? open je vereiste poorten? Je kunt elk playpath / any / thing instellen
- Ook de FFmpeg Input-server start wanneer het stream ontvangt en de output start wanneer het een verzoek ontvangt