Grundeinstellung OBS-Studio

  • Die reine "Aneinanderreihung" der Parameter für ffmpeg würde im Falle eines SR333 QPSK FEC 4/5 so aussehen:


    @echo off

    c:\ffmpeg\bin\ffmpeg -f dshow -thread_queue_size 4096 -rtbufsize 100M -i video="OBS-Camera" -f dshow -thread_queue_size 1024 -rtbufsize 10M -i audio="OBS-Audio" -ar 48000 -vcodec hevc_nvenc -s 1920x1080 -bf 0 -pix_fmt yuv420p -b:v 420k -r 25 -g 50 -preset llhq -profile:v main -rc cbr_ld_hq -rc-lookahead 10 -acodec aac -aac_coder fast -ac 1 -b:a 36k -f mpegts -muxrate 529k -streamid 0:256 -streamid 1:257 -max_delay 4000000 -pcr_period 39 -pat_period 0.4 -metadata service_provider="DD4YR_Robert" -metadata service_name="DATV" -y "udp://192.168.2.1:8282?pkt_size=1316"

    pause


    Wobei die wesentlichen Parameter folgende sind:

    -i video="OBS-Camera" ......ffmpeg übernimmt die Videodaten aus der OBS Virtual Cam

    -vcodec hevc_nvenc .......... es wird der H265 encoder einer nVidia Grafikkarte benutzt

    -s 1920x1080 .......... ist die Auflösung in welcher gesendet wird unabhäning der Auflösung von OBS

    -b:v 420k ..........ist die reine Videonettobitrate

    -r 25 ..........ist die Anzahl an frames pro Sekunde

    -b:a 36k ..........ist die netto Audio Bitrate

    -muxrate 529k .......... ist die maximale Bitrate welche für die Kombination SR333 QPSK FEC 4/5 übertragen werden kann

    -max_delay 4000000 ..........ist die Pufferzeit in Mikrosekunden innerhalb welcher das Videosignal gepuffert werden kann.

    -y "udp://192.168.2.1:8282?pkt_size=1316" ..........ist die IP-Adresse an welcher der UDP stream geschickt wird.


    Sehr wichtig ist es jetzt, dass die Summe von Audio Bitrate, Video Bitrate, Nullpackets in Summe nie größer sind als die muxrate, also die maximal zur Übertragung mögliche bitrate.


    Mit der Video- und Audio Nettobitrate kann man variieren, um je nach Videoinhalt (Bewegung) einen Nullpackets Anteil von 2-10% im Analysing Monitor des PLUTO zu bekommen.


    Mit der -max_delay Zeit kann man den Puffer so groß wählen, dass die "grünen Punkte" im Analysing Monitor keines falls in den Roten Bereich runter zappeln.

    Geht es im Analysing Monitor ständig nach unten und irgendwann in den roten Bereich, dann ist bei passender muxrate die Video + Audiobitrate in Summe noch zu hoch.




    Die TS-Rate available (muxrate im ffmpeg script) wird für die entsprechende Kombination aus SR, FEC Modulation (QPSK) usw. von der PLUTO Firmware berechnet und im Modulator Fenster angezeigt.



    Es ist also für jede Kombination ein eigenes angepasstes bat script erforderlich.



    Das ganze kann man, wie Wolfgang schon erwähnt hat, erst mal schön am Analysis Monitor auf Korrektheit überprüfen, ggf. auch sich selbst lokal mit dem MiniTiouner empfangen (ja, der geht bis 2450 MHz) bevor man auf Sendung über den Transponder von QO-100 geht.


    Vielleicht auch noch mal einen Blick in den Thread "Licht ins Dunkel" werfen ....



    73 de Robert

  • Mit dem Kommandozeilenbefehl 'FFMPEG --help' sollten alle Parameter aufgeführt werden,

    Ja, vielleicht noch der Hinweis, dass nicht alle Parameter in dem bat script ffmpeg direkt betreffen.

    Einige Parameter werden nur zum PLUTO "durchgereicht" und erst vom DVB-S2 encoder im PLUTO verwendet.

    Das ist der Grund, warum sich mit ffmpeg -h nicht alles finden lässt.

  • Schön guten Morgen Zusammen,

    erst mal DANKE an alle die mir Infos gegeben haben.

    Ich bin dabei von so einer bat-Datei die ganzen Infos zusammen zu tragen. Wenn alles vollständig ist hier mal ins Netz stellen. Ich Glaube ich bin nicht der Einzige der damit Probleme hat.


    Ich wünsche Euch noch einen schönen Tag.


    Gruß Ulrich

  • Hallo nochmal,


    bitte achtet auch auf die verwendete Firmware im PLUTO.


    Die letzte stabile Version ist nach wie vor die 2308.


    Alle Folgeversionen können, auch je nach verwendetem patch.zip, unterschiedliche Fehler auslösen die nicht nachvollziehbar sind.

    Meist nach Parameterwechsel.


    Erst das bat script stoppen. Dann warten bis die Puffer im PLUTO leer sind. Dann erst Änderungen vornehmen, den PLUTO korrekt einstellen auf Mode, SR und FEC, dann erst das bat script wieder starten. Änderungen "on the fly" bringen oft Fehlerhalten mit sich.

    Ist leider so.


    Es gibt viele Einflussfaktoren welchen auch den PLUTO in undefinierte Zustände bringen können. Immer wieder mal wenn etwas nicht klappt den PLUTO resetten. Dabe zeigen sich nach Abstecken des Stomes und Wiederanstecken oft bessere Resultate als nur über Software einen RESET auslösen. Warum auch immer.


    73 de Robert

  • Hello OMs,


    I´m using in my "ProfileSwitcher" program following FFMPEG parameters for


    -> 333KS, FEC 4/5, HEVC encoder

    ffmpeg.exe -re -f dshow -thread_queue_size 4096 -rtbufsize 1000M -i video=OBS-Camera -itsoffset 0.000 -f dshow -thread_queue_size 2048 -rtbufsize 100M -i audio=OBS-Audio -vcodec hevc_nvenc -preset p6 -tune hq -s 1280x720 -bf 0 -pix_fmt yuv420p -b:v 453000 -minrate 453000 -maxrate 453000 -r 25 -g 33 -profile:v main -rc-lookahead 25 -acodec aac -strict experimental -ac 1 -b:a 64k -ar 22050 -f mpegts -muxrate 516600 -streamid 0:256 -streamid 1:257 -max_delay 3000000 -pcr_period 20 -pat_period 0.4 -metadata service_provider=YourCallsign_Name -metadata service_name=DATV -y udp://192.168.2.12:8282?pkt_size=1316

    If you have a ffmpeg installed on your machine, you can execute above paragraph in command line directly.

    from the program call itself, multiple parameters (in blue) will/need to be adapted for different settings!
    "-re -f dshow -thread_queue_size 4096 -rtbufsize 1000M -i video=OBS-Camera -itsoffset " + Conv_V_sync + " -f dshow -thread_queue_size 2048 -rtbufsize 100M -i audio=OBS-Audio -vcodec hevc_nvenc -preset p6 -tune hq -s " + CB_VideoSize.SelectedItem + " -bf 0 -pix_fmt yuv420p -b:v " + ForcedSymbolRate + " -minrate " + ForcedSymbolRate + " -maxrate " + ForcedSymbolRate + " -r " + FPS + " -g " + GOP + " -profile:v main -rc-lookahead " + FPS + " -acodec aac -strict experimental -ac 1 -b:a " + AudioBitRate + "k -ar " + AudioSampleRate + " -f mpegts -muxrate " + MuxRate + " -streamid 0:256 -streamid 1:257 -max_delay 3000000 -pcr_period " + PCR_period + " -pat_period " + Conv_Pat_period + " -metadata service_provider=YourCallsign_Name -metadata service_name=DATV -y udp://" + Pluto_IP + ":8282?pkt_size=1316";


    Attached a view of my GUI program:

  • Furthermore I want to add:


    The call to ffmpeg has a structure:

    ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...


    Parameters above may vary from use case, environment and additional topics like
    - version of ffmpeg
    - kind of video material (fast scene changes)
    - available / used GPU
    - Adalm Pluto network connection (USB, ETH)
    - USB configurations mainly for the reception (MiniTiouner)
    ...

    Due to these reasons, I haven´t provided my programm. As you may saw, I used some fix values, which might not be useful for all of us.


    For deeper introduction into all the parameters check the following information:

    Documentation (ffmpeg.org)

  • -> 333KS, FEC 4/5, HEVC encoder

    ffmpeg.exe -re -f dshow -thread_queue_size 4096 -rtbufsize 1000M -i video=OBS-Camera -itsoffset 0.000 -f dshow -thread_queue_size 2048 -rtbufsize 100M -i audio=OBS-Audio -vcodec hevc_nvenc -preset p6 -tune hq -s 1280x720 -bf 0 -pix_fmt yuv420p -b:v 453000 -minrate 453000 -maxrate 453000 -r 25 -g 33 -profile:v main -rc-lookahead 25 -acodec aac -strict experimental -ac 1 -b:a 64k -ar 22050 -f mpegts -muxrate 516600 -streamid 0:256 -streamid 1:257 -max_delay 3000000 -pcr_period 20 -pat_period 0.4 -metadata service_provider=YourCallsign_Name -metadata service_name=DATV -y udp://192.168.2.12:8282?pkt_size=1316

    this command line has failures .... for SR333 FEC 4/5


    73 de Robert

  • Hello Robert,
    your comment is useless without any further information!
    Very often seen in the chats, that comments made, BUT without information bringing topic forward...
    73, DH1RK

  • Ok Robert,


    so your result looks different! Not sure, if you adapt the parameters right.

    I have in total ~517kbit/s (see picture below) which is lower as your setup.

    From PlutoFirmware I get a TS rate from 516.759 Kb/s too.


    From the screenshot, I see a difference in the q=xxx settings.
    I´m using ffmpeg-4.4-full_build.
    F1EJP use ffmpeg version 4.3 in his in FreeStreamCoder software.

    I also detected, that the versions of ffmpeg may vary drastically!
    Above example:
    ffmpeg-4.4-full_build → 107MB
    F1EJP ffmpeg v4.3 → 65,4MB


    That´s what I mentioned earlier regarding "version of ffmpeg"...


    It´s all about SOFTWARE, curse and blessing at the same time.


    73 de Rüdiger