Probleme mit FFMPEG und RTMP unter Ubuntu 24.02

Habe noch etwas mehr getestet und unter Debian 11 funktioniert der Stream, Debian 12 nicht.

Was du noch machen könntest, wäre Nginx selbst zu kompilieren, mit den nötigen Modulen. Vielleicht geht es dann.
 
Habe Debian 12 und Ubuntu 24.02 getestet.
Puh, bin ich froh, dachte schon ich bin zu doof. 😅

Mit Debian 11 müsste ich erst schauen, ob da meine anderen Sachen laufen.
Mit selber kompilieren müsste ich erstmal schauen, wie das geht.

Boah ist das Mist, wenn da überall nichts geht :D

Danke fürs testen und bestätigen.

Habe heute Morgen auf 22.04 noch getestet, da geht rtmp + ffmpeg, aber die iGPU nicht.
 
Würde jetzt auch nicht mehr auf Debian 11 wechseln, da hast du bald wieder Probleme weil es EOL ist.

Ich würde entweder Nginx selbst kompilieren unter Ubuntu 24, oder ffmpeg unter Ubuntu 22. Nginx dürfte etwas einfacher sein, für ffmpeg gibt es auch Scripts. Z.B.: https://github.com/jb-alvarado/compile-ffmpeg-osx-linux

Könnte dir auch mit SRS assistieren, ich kompiliere mir das auch immer selber und habe das seit Jahren 24/7 im Einsatz.
 
SirLoading schrieb:
Mit Debian 11 müsste ich erst schauen, ob da meine anderen Sachen laufen.
Auch wenn du es nicht hören willst, deshalb nutzt man für sowas dann docker ;)
 
NJay schrieb:
Auch wenn du es nicht hören willst,
Hau ab!! :D
Wie gesagt, ich nutze zuhause am Homeserver Docker, aber da läuft OMV drauf.

Ich komm mit der Installation von Docker nicht so klar und ja.
jb_alvarado schrieb:
ffmpeg unter Ubuntu 22
Ne, NGINX + ffmpeg laufen unter 22 super, nur gibt es Probleme mit der iGPU, da hängt sich die Konsole immer auf.
 
Wenn ich das via Docker mache, dann müsste das auch per iGPU gehen oder?

jb_alvarado schrieb:
Deshalb ja selbst kompilieren
Mag sein, aber ich habe da keine Ahnung und müsste mich erst einlesen.

Nachtrag:
Portainer ist nicht so eine gute Idee auf nem Server im Internet?
 
Zuletzt bearbeitet:
So, Docker läuft.
Nun muss ich nur ein Image finden, was ich nutzen kann für das Streamen.

Die Fertig Optionen wie Restreamer haben zu viel Latenz. ~20 -30 Sekunden.
Davor hatte ich mit RTMP 2 - 4 Sekunden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: jb_alvarado
SirLoading schrieb:
Nachtrag:
Portainer ist nicht so eine gute Idee auf nem Server im Internet?
Ich persönlich würde das nicht auf einem Root Server installieren, aber bin damit auch nicht so tief mit vertraut um wirklich eine qualifizierte Aussage darüber zu machen.
SirLoading schrieb:
Die Fertig Optionen wie Restreamer haben zu viel Latenz. ~20 -30 Sekunden.
Davor hatte ich mit RTMP 2 - 4 Sekunden.
Das lese ich immer wieder mal, aber keine Ahnung warum. Für ein statisches Setup braucht man es auch nicht wirklich.
 
NJay schrieb:
Du kannst auch weiterhin nginx mit rtmp nutzen.
Das weiß ich.
Nur finde ich das per Konsole nicht so toll, ist einfach nicht meins.

jb_alvarado schrieb:
nicht auf einem Root Server installieren
Im Heimnetzwerk nutze ich das, da einfacher. (Für mich)
Kekst mich jetzt schon an. ^^

jb_alvarado schrieb:
Für ein statisches Setup braucht man es auch nicht wirklich.
Ist richtig, wäre aber für mich einfacher gewesen. :D

Ich versuche mal mein Glück mit Compose.
Ergänzung ()

NJay schrieb:
Hier geht auch nur push und via ffmpeg gleiche Problem.
 
Zuletzt bearbeitet:
SirLoading schrieb:
Hier geht auch nur push und via ffmpeg gleiche Problem.
Dann wird das Problemw ahrscheinlich an deiner config liegen. habe so ein Setup mit docker schon am laufen gehabt.
 
Dann ist klar warum es nicht geht.
Wie bekomme ich das rein?
 
Ok, ich glaube ich gebe es langsam auf.
Egal wie ich es mache, es funktioniert nicht.
 
Guten Morgen,
nach langem hin und her habe ich folgendes herausgefunden:
NGINX V 1.20.2 ist die letzte funktionierende Version mit dem RTMP Modul.

Ich finde aber keine Anleitung um dieses zu installieren die für mich funktioniert.

In Docker habe ich das Problem mit der iGPU, das macht Probleme.
 
Falls du es doch noch mit SRS versuchen möchtest:

1. Archiv im Anhang entpacken und nach /usr/local/ kopieren, endgültiger Pfad muss /usr/local/srs sein.
2. Konfig unter /etc/srs/srs.conf mit diesem Inhalt erstellen:

NGINX:
listen              1935;
max_connections     200;
daemon              on;
pid                 /usr/local/srs/objs/srs.pid;
srs_log_tank        console;
ff_log_dir          /dev/null;

# can be: verbose, info, trace, warn, error
srs_log_level       error;

stats {
    network         0;
    disk            sda vda xvda xvdb;
}

vhost __defaultVhost__ {
    enabled             on;

    transcode live/stream {
        enabled     on;
        ffmpeg      /usr/bin/ffmpeg;

        engine twitch {
            enabled         on;
            iformat         live_flv;
            vfilter {
                v           error;
            }

            vcodec          copy;
            acodec          copy;
            oformat         flv;
            output          rtmp://10.167.50.1/live/stream;
        }

        engine youtube {
            enabled         off;
            iformat         live_flv;
            vfilter {
                v           error;
            }

            vcodec          copy;
            acodec          copy;
            oformat         flv;
            output          rtmp://a.rtmp.youtube.com/live2/key-1-2-3;
        }

        engine record {
            enabled         off;
            iformat         live_flv;
            vfilter {
                v           quiet;
            }
            vcodec          libx264;
            vthreads        1;
            vprofile        main;
            vpreset         faster;
            vparams {
                crf                 33;
                reset_timestamps    1;
                segment_time        21600;
                strftime            1;
            }
            acodec          aac;
            abitrate        46;
            asample_rate    44100;
            achannels       1;
            oformat         segment;
            output          /opt/tmp/[stream]_%Y-%m-%d_%H-%M-%S.mkv;
        }
    }
}
Du brauchst nicht alle engine Direktiven, das sind nur Beispiele wie sie aufgebaut sein können.
Du findest viele Beispiel-Konfigs unter /usr/local/srs/conf.
Weitere ffmpeg Einstellungen findest du hier, kannst aber auch einfach deine gewohnten Settings in vparams {...} hinein tun.

3. SystemD Service erstellen unter /etc/systemd/system/srs.service:
Code:
[Unit]
Description=SRS
Documentation=https://github.com/ossrs/srs/wiki
After=network.target

[Service]
Type=forking
ExecStartPre=/usr/local/srs/objs/srs -t -c /etc/srs/srs.conf
ExecStart=/usr/local/srs/objs/srs -c /etc/srs/srs.conf
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -1 $MAINPID
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Aktivieren und starten: systemctl enable --now srs

Wenn du SRS lieber selber kompilieren möchtest:
1. nötige Pakete installieren apt install build-essential git unzip tclsh cmake pkg-config
2. das Repo z.B. nach /opt/srs klonen und nach /opt/srs/trunk navigieren
- Branch auschecken: git checkout 5.0release
3. konfigurieren: ./configure --ffmpeg-fit=off --static=on --shared-srtp=off --sys-ffmpeg=on --sanitizer=off
4. bauen: make -j5
5. installierten: make install
 

Anhänge

So, habe das nach deiner Anleitung gemacht und die Config (/etc/srs/srs.conf) ist nicht vorhanden, ist das richtig? (Muss also durch mich erst erstellt werden)

The build summary:
+------------------------------------------------------------------------------------
For SRS benchmark, gperf, gprof and valgrind, please read:
https://www.jianshu.com/p/6d4a89359352
+------------------------------------------------------------------------------------
|The main server usage: ./objs/srs -c conf/srs.conf, start the srs server
| About HLS, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/delivery-hls
| About DVR, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/dvr
| About SSL, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/rtmp-handshake
| About transcoding, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/ffmpeg
| About ingester, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/ingest
| About http-callback, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/http-callback
| Aoubt http-server, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/http-server
| About http-api, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api
| About stream-caster, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/streamer
| (Disabled) About VALGRIND, please read https://github.com/ossrs/state-threads/issues/2
+------------------------------------------------------------------------------------
binaries, please read https://ossrs.net/lts/zh-cn/docs/v4/doc/install
You can:
./objs/srs -c conf/srs.conf
to start the srs server, with config conf/srs.conf.
root@Ubuntu-2404-noble-amd64-base /opt/srs/trunk # make install
Now mkdir /usr/local/srs
Now make the http root dir
Now copy binary files
Now copy srs conf files
Now copy init.d script files
Now copy systemctl service files

@see: https://ossrs.net/lts/zh-cn/docs/v4/doc/service
 
Zurück
Oben