[ffmpeg] Unerwünschtes Transcoding von h264 nach mpeg2video

  • Ich stehe vor einem ffmpeg Problem und vor einem Rätsel. Vielleicht hat ja einer Idee, weil mir diese aktuell ausgegangen sind.

    Situation:

    Aus einem Stream will ich die Audio- und Video-Daten extrahieren und nach mpegts muxen. Soweit so gut. Allerdings transcodiert ffmpeg das Video immer nach mpeg2video und Audio nach mp2, obwohl die Quelle h264 und aac ist. Das passiert sowohl auf dem N2+, als auch auf dem Desktop.


    Beide Aufruf machen das Transcoding:

    Code
    ffmpeg -re -y -i https://swrswr3vr-hls.akamaized.net/hls/live/2018683/swr3vr/master.m3u8 -map 0:6 -c:6 copy -f mpegts out.ts
    
    ffmpeg -re -y -analyzeduration 100M -probesize 100M -i https://swrswr3vr-hls.akamaized.net/hls/live/2018683/swr3vr/master.m3u8 -map 0:6 -c:6 copy -f mpegts out.ts


    Der Stream 6 ist ein h264 Video und die Ausgabe sieht so aus:

    Wie man sieht

    Stream mapping:

    Stream #0:6 -> #0:0 (h264 (native) -> mpeg2video (native))


    Warum nur? Und wie kann ich das verhindern? Mit z.B. Streams aus der Mediathek funktioniert es doch einwandfrei.

  • Ich denke, ich habe eine Lösung gefunden, die ich allerdings nicht verstehe:


    Video h264 -> h264 mit.

    Code
    fmpeg -re -y -i https://swrswr3vr-hls.akamaized.net/hls/live/2018683/swr3vr/master.m3u8 -t 5 -c:a copy -c:v copy -map 0:6 -c:6 copy -f mpegts out.ts


    Audio aac -> aac mit:

    Code
    ffmpeg -re -y -i https://swrswr3vr-hls.akamaized.net/hls/live/2018683/swr3vr/master.m3u8 -t 5 -c:a copy -c:v copy -map 0:19 -c:19 copy -b:a 512k -f mpegts out.ts


    Kombination Video/Audio mit

    Code
    ffmpeg -re -y -i https://swrswr3vr-hls.akamaized.net/hls/live/2018683/swr3vr/master.m3u8 -t 5 -c:a copy -c:v copy -map 0:6 -c:6 copy -ar 48000 -map 0:19 -c:19 copy -b:a 512k  -f mpegts out.ts


    Neue Parameter sind -c:a copy -c:v copy bei allen Varianten. Für Audio musste ich noch -b:a 512k hinzufügen. Und für die Kombination Video/Audio zusätzlich auch noch -ar 48000.


    Warum auch immer.... Ich werde das mal in den Transcoder einbauen und nochmal im Live-System testen.

  • Probiere mal:


    Code
    ffmpeg -hide_banner -analyzeduration 50M -probesize 50M -i https://swrswr3vr-hls.akamaized.net/hls/live/2018683/swr3vr/master.m3u8 -map 0:6 -map 0:7 -c copy -f mpegts out.ts

    oder yt-dlp



    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Code
    -analyzeduration 50M -probesize 50M

    Das habe ich auch schon versucht, aber mittlerweile bin ich dahinter gekommen, daß z.B. SWR3 die Audiotracks zu würfeln scheint. Der Index, der nutzbares Audio beinhaltet, wechselt oft und sogar während des Downloads (wenn eine neue m3u geladen wird) und damit ist eine statische Konfiguration der Audio-Streams unmöglich und ffmpeg macht Probleme wenn auf einmal channels=0 oder sample_rate=0 ist. Da muss ich eine andere Lösung finden - zumindest für solche Streams.


    Ziele sind

    a) Bestes Video/Audio und

    b) Falls mehrere Sprachen vorhanden sind, diese auch zu liefern. KiKa liefert z.B. de, Klare Sprache und Hörfilm.


    yt-dlp sieht sehr vielversprechend aus. Das muss ich mir genauer anschauen. Danke für den Hinweis.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!