
Hier ist der Befehl:
ffmpeg -i rtmp://localhost/myapp/obs -c:a libfdk_aac -b:a 32k -c:v libx264 -f flv rtmp://localhost/hls/obs_low
Mein RTMP-Server zeichnet alle veröffentlichten Streams auf, sodass ich sie alle ansehen kann. Merkwürdig ist, dass, rtmp://localhost/myapp/obs
wenn ich während des Streamings den obigen ffmpeg-Befehl ausführe, in der Ausgabedatei nur Audio, kein Video enthalten ist. Und in der Terminalausgabe:
Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> aac (libfdk_aac))
Aber wenn ich denselben Befehl noch einmal ausführe, könnte das Video da sein. Es ist zufällig, ob das Video da ist oder nicht. Wenn das Video da ist, sehe ich diese Ausgabe im Terminal:
Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (aac (native) -> aac (libfdk_aac))
Vollständige Ausgabe des Befehls „Nur Audio“:http://pastebin.com/zL0ctvTZ
Vollständige Ausgabe des erfolgreichen Befehls:http://pastebin.com/DQ1XJ1wM
Antwort1
Klingt, als wäre die Interleaving-Lücke groß. Versuchen Sie es mit -analyzeduration 1G -probesize 50M -i rtmp://...
Die Werte stellen einen Kompromiss zwischen verpassten Streams und der Verzögerung beim Start der Aufnahme dar, daher würde ich vorschlagen, Versuche durchzuführen. Der Standardwert für analyzeuration und probesize ist 5M
, also versuchen Sie es mit etwas größeren Werten, bis Sie dauerhaft keinen Stream-Ausfall mehr haben. Experimentieren Sie zuerst mit probesize. Möglicherweise müssen Sie den anderen Wert nicht angeben.