Mp4-Video über ffmpeg und rtmp mit red5 streamen

10527
Kevin - Dhinesh babu

Ich muss mp4-Videodateien über FFMPEG streamen und die Ausgabe mithilfe des RTMP-Protokolls an RED5 streamen. Ich verwende dazu den folgenden Befehl. Es ist perfekt codiert, aber es wird nicht abgespielt, wenn ich mit Jwplayer einbettet.

ffmpeg -i http://xxxxxx.com/adv.mp4 -acodec copy -vcodec copy -f flv rtmp://xxxxxxx/live/stream1 

es wird folgendes Ergebnis gegeben:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://xxxxxxxxxxxx.com/adv.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 creation_time : 2013-10-14 11:57:33 encoder : HandBrake 0.9.9 2013052900 Duration: 00:04:50.99, start: 0.000000, bitrate: 912 kb/s Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 1920x360 [PAR 847:1920 DAR 847:360], 795 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc Metadata: creation_time : 2013-10-14 11:57:33 Stream #0.1(und): Audio: aac, 11025 Hz, stereo, s16, 116 kb/s Metadata: creation_time : 2013-10-14 11:57:33 Output #0, flv, to 'rtmp://xxxxxxxxx/live/stream1': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 creation_time : 2013-10-14 11:57:33 encoder : Lavf53.21.1 Stream #0.0(und): Video: libx264, yuv420p, 1920x360 [PAR 847:1920 DAR 847:360], q=2-31, 795 kb/s, 1k tbn, 25 tbc Metadata: creation_time : 2013-10-14 11:57:33 Stream #0.1(und): Audio: libvo_aacenc, 11025 Hz, stereo, 116 kb/s Metadata: creation_time : 2013-10-14 11:57:33 Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1 Press ctrl-c to stop encoding frame= 7266 fps=563 q=-1.0 Lsize= 32544kB time=290.64 bitrate= 917.3kbits/s  video:28220kB audio:4130kB global headers:0kB muxing overhead 0.601155% 

Danach habe ich die RTMP-URL in meinen Jwplayer eingebettet

<script type='text/javascript'> jwplayer('mediaspace').setup({ 'flashplayer': 'http://xxxxxxxxxx/tools/js/jwplayer.flash.swf', 'stretching': 'exactfit', 'type': 'rtmp',  'file':'stream1', 'autostart': 'true',  'controlbar': 'bottom', 'streamer':'rtmp://xxxxxxxx/live/',   'width': '889', 'height': '410',  }); </script> 

Danach zeigt mein Player den folgenden Fehler

Error loading stream Could not connect to the server 

wie kann ich das lösen und wie live stream streamen .... ???

1

1 Antwort auf die Frage

3
Unnikrishnan

Versuchen Sie diesen Befehl. Dies ist der Befehl, den ich normalerweise zum Streaming einer Videodatei als Live-Stream verwenden

ffmpeg -re -i localFile.mp4 -c kopiert -f flv rtmp: // server / live / streamName

Die Option -re weist FFmpeg an, die Eingabedatei in Echtzeit und nicht so schnell wie möglich zu lesen. Mit -c copy (Alias ​​-acodec copy -vcodec copy) sage ich FFmpeg, die Essenzen der Eingabedatei ohne Transcoding zu kopieren, sie dann in einen FLV-Container (-f flv) zu packen und den endgültigen Bitstream an ein RTMP-Modul zu senden Ziel (rtmp: // server / live / streamName).

Die JWplayer-Quelle lautet wie folgt

<html> <head><title>TEST PLAYER</title> </head> <body> <script type="text/javascript" src="jwplayer.js"></script> <div id="myElement">Loading the player...</div> <script type="text/javascript"> jwplayer("myElement").setup({ file: "rtmp://[ip-address]/live/streamname", }); </script> </body> </html> 

Stellen Sie sicher, dass sich jwplayer.js und player.swf an den richtigen Positionen befinden.

wie kann ich mit jwplayer einbetten ??? Kevin - Dhinesh babu vor 10 Jahren 0
welche version von jwplayer du verwendest? Unnikrishnan vor 10 Jahren 0
jwplayer 6.0 oben Kevin - Dhinesh babu vor 10 Jahren 0
Ihr obenstehender ffmpeg-Code gibt diesen Fehler zurück. `Nicht erkannte Option 'c' Der Wert 'copy' für die Option 'c' konnte nicht eingestellt werden Kevin - Dhinesh babu vor 10 Jahren 0
Kein Fehler hier Befehl noch einmal prüfen. Ändern Sie die Reihenfolge der Optionen Unnikrishnan vor 10 Jahren 0
Wie kann ich eine Multi-Input-Datei hinzufügen? Kevin - Dhinesh babu vor 10 Jahren 0
Dies ist der Befehl, den ich verwendet habe. Ffmpeg -re -i /usr/local/content/sample.mp4 -c kopiert -f flv rtmp: //192.168.1.34: 1935 / live / test Unnikrishnan vor 10 Jahren 0
Mein Freund, sagte ich mulit Eingabe wie folgende Syntax `ffmpeg -re i- inputfile1.mp4, inputfile2.mp4, inputfile3.mp4 -c kopieren -f flv rtmp: // xxxxx / live / test` wie kann ich befehlen Kevin - Dhinesh babu vor 10 Jahren 0
Ich denke, Sie können mit diesem Befehl nicht mehrere Dateien wie diese hinzufügen. Versuchen Sie zuerst den Befehl, den ich sagte. Es gilt für eine einzelne Datei. Unnikrishnan vor 10 Jahren 0
Ich bin froh, dass es funktioniert hat :) Unnikrishnan vor 10 Jahren 0
Können wir vlc für ffmpeg und rtmp verwenden, um mehrere Dateien zu erhalten? Kevin - Dhinesh babu vor 10 Jahren 0
Ich habe nicht viel mit VLC gearbeitet. Ich denke, Sie können mehrere Instanzen von FFMpeg öffnen. Ich meine, einfach die Befehle auf verschiedenen Registerkarten für verschiedene Dateien ausführen. Die Systemlast wird jedoch steigen. Versuchen Sie es trotzdem. Unnikrishnan vor 10 Jahren 0
Lasst uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/12709/discussion-between-unnikrishnan-and-tamil-arvu) Unnikrishnan vor 10 Jahren 0