Steuerung per Batch Datei - Live Streaming - Output Audio Delay dauerhaft korrigieren

  • Guten Tag wertes Forum,


    Folgendes Projekt habe ich in Umsetzung:

    Quelle: DVB-C RTSP Stream (von einer FritzBox, oder einem Streamserver)

    Ziel: Dieses Live-TV wird von einer IIS-Website ausgeliefert und in Browser(n) dargestellt, idealerweise mit Ton.


    Bei den Recherchen ergab sich, dass der bevorzugte Browser Chrome die Container *.webm oder *.ogg zum Abspielen akzeptiert (neuerdings auch autoplay ohne muted im <video> Argument).

    *.mp4 wird nicht akzeptiert, warum auch immer.

    Einige viele Experimente später läuft das auch, bis auf das Delay Problem.


    Dateiübersicht:

    1. eine M3U welche das DVB-C Headend zur Unicast-RTSP Ausgabe veranlasst:

    #EXTM3U

    #EXTINF:0,ntv

    rtsp://@192.168.178.22:554/?freq=546&mtype=256qam&sr=6900&msys=dvbc&pids=0,112,1901,1902,1903,1904


    2. Batchdatei: VLC starten - M3U aufrufen - Streamausgabe über HTTP inkl. Codecs (Theora + Vorbis oder Opus):

    @echo off

    CD C:\Program Files\VideoLAN\VLC

    timeout /t 1

    start vlc.exe C:\___VLC_Ausgabe_test\Theora_vorbis\M4_ntv.m3u :sout=#transcode{vcodec=theo,vb=2000,scale=1,acodec=opus,ab=96,channels=2,samplerate=48000,scodec=none,audio-sync}:http{mux=ogg,dst=:8080/stream.ogg} :no-sout-all :sout-keep


    3. Der Code in der Website (Beispiel):

    <video width="860" controls autoplay muted>

    <source src="http://192.168.178.250:8080/stream.ogg" type="video/ogg" />

    </video>


    Nun ist das Problem, der Ton hinkt dem Video hinterher, und ich habe bisher keine Lösung gefunden.

    Wie man das über die GUI des VLC löst, weiß ich.

    Einen VLC auf anderem System öffnen, dort den Stream direkt wiedergeben, Werkzeuge -> Spursynchronsierung -> etwa minus 1,3 Sekunden, da passt das.


    Doch wie bringe ich VLC dazu, per Kommandozeile entweder ein Delay zu setzen, oder besser gleich A/V synchron zu halten?

    Die Option audio-sync soll veraltet sein laut Wiki.


    Danke & Gruß

    Peda

  • Danke,

    ich hab ich durch die command-line help mal weiter durchgewuselt.

    Ich bin zwar weiterhin ob der richtigen Syntax unsicher (Reihenfolge, innerhalb oder außerhalb der Klammern...), jedoch scheint das Thema gelöst :)

    Aktuell nutze ich dies:

    Code
    --network-caching=3000 --audio-desync=0 :sout=#transcode{vcodec=theo,vb=5000,scale=1,acodec=opus,ab=128,channels=2,samplerate=48000,scodec=none}:http{mux=ogg,dst=:8080/stream.ogg} :sout-mux-caching=500 :no-sout-all :sout-keep 

    Entscheidende Änderung:

    --network-caching=

    Ich hatte mich gewundert, warum das Tonproblem über die GUI gestartet nicht auftrat. Die Option taucht leider am Ende der GUI Führung nicht auf ("Generierter Stream-Ausgabe-String") und führt so schön aufs Glatteis.

    :sout-mux-caching=

    habe ich auch gefunden und einfachmal eingesetzt. Bissl Cache kann denke nie schaden (?).

    --audio-desync=

    ist offensichtlich jene Funktion, welche sonst bei lokaler Ausgabe die Werkzeuge -> Spursynchronsierung ist. Ist wirksam, aber aktuell auf "0" gesetzt.


    Btw. mit dem Opus Audio-Codec scheinen die Ergebnisse besser als mit Vorbis.

    Hilfreich für die richtigen Abkürzungen in der Kommandozeile ist

    VideoLan Codecs


    Grüße Peda