- Registriert
- Dez. 2021
- Beiträge
- 353
Und wie starte ich dann via SystemD Service?
Wenn ich etwas an der Config ändere, dann muss ich auch Neustarten`/ reload?
Wenn ich etwas an der Config ändere, dann muss ich auch Neustarten`/ reload?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
systemctl enable srs
(damit läuft er aber noch nicht, erst nach systemctl start srs
). Dann läuft er immer automatisch, auch bei einem Neustart. Wenn du Änderungen an der Config machst, die deinen aktuellen Stream nicht beeinflussen, reicht ein systemctl reload srs
, ansonsten systemctl restart srs
.systemctl status srs
und fortlaufendes logging ausgeben geht mit: journalctl -f -u srs
.Beim Encoden wird ja eh ffmpeg genommen, daher ist das kein Problem, wenn es mit dem encoder compiliert wurde.SirLoading schrieb:SRS kann mit "h264_qsv" umgehen?
Ok, das erklärt, warum es nicht geht mit der iGPU.jb_alvarado schrieb:wenn es mit dem encoder compiliert wurde
ffmpeg -encoders | grep h264_qsv
ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
V..... h264_qsv H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
Komisch, weil ffmpeg mitSirLoading schrieb:Beim ffmpeg in der Konsole hatte immer gemeckert wegen libmfx und als Lösung habe ich das installiert.
--enable-libvpl --disable-libmfx
gebaut ist. Vielleicht kannst du noch libvpl nach installieren.In dem du die Parameter im engine ... Abschnitt anpasst, mit:SirLoading schrieb:Wie bekomme ich das nun in srs zum laufen?
engine myengine {
enabled on;
iformat live_flv;
vfilter {
v error;
}
vcodec h264_qsv;
vparams {
global_quality 25;
}
acodec aac;
abitrate 128;
oformat flv;
output rtmp://example.org/appname/key;
}
netstat -tupln
. Und den AppName und StreamKey prüfen, das muss mit transcode live/stream
(appname/key) übereinstimmen.jb_alvarado schrieb:Prüfe noch mal ob srs wirklich läuft,
Das passt, wenn ich zu vcodec copy gehe, dann geht es.jb_alvarado schrieb:AppName und StreamKey prüfen
-c:v h264_qsv -x264-params keyint=120 -preset veryslow -b:v 6000k -minrate 6000k -maxrate 6000k -bufsize 4000k -preset veryslow -profile:v high -s 1920x1080 -r 60 -c:a copy -tune zerolatency
trunk
src/app/srs_app_ffmpeg.cpp
in einem Texteditor, z.B. nano#define SRS_RTMP_ENCODER_VCODEC_H264QSV "h264_qsv"
if (vcodec != SRS_RTMP_ENCODER_VCODEC_LIBX264)
und änderst sie in: if (vcodec != SRS_RTMP_ENCODER_VCODEC_LIBX264 && vcodec != SRS_RTMP_ENCODER_VCODEC_H264QSV)
, müsste Zeile 127 sein.return ...
änderst du in:return srs_error_new(ERROR_ENCODER_VCODEC, "invalid vcodec, must be %s or %s, actual %s", SRS_RTMP_ENCODER_VCODEC_LIBX264, SRS_RTMP_ENCODER_VCODEC_H264QSV, vcodec.c_str());
make -j4
make uninstall
make install
systemctl restart srs
engine myengine {
enabled on;
iformat live_flv;
vfilter {
v error;
}
vcodec h264_qsv;
vprofile main;
vpreset medium;
vthreads 0;
vparams {
global_quality 25;
}
acodec aac;
abitrate 128;
oformat flv;
output rtmp://127.0.0.1:1936/live/stream1;
}
transcode live/stream {...}
und für jede Plattform mache ich eine Engine: engine PLATTFORM {...}
.transcode live/247stream {...}
?SirLoading schrieb:Wenn ich meinen Livestream an mehrer Plattformen senden möchten, dann läuft das untertranscode live/stream {...}
und für jede Plattform mache ich eine Engine:engine PLATTFORM {...}
.
Wenn ich ein weiteres brauche für einen 24/7 Stream, dann mache ich ein weiterestranscode live/247stream {...}
?
transcode
Einheit, aber was du möchtest geht damit auch:transcode live
. Bei den engines gibst du dann den key mit an: engine stream
.transcode live {
enabled on;
ffmpeg /usr/bin/ffmpeg;
engine stream {
enabled on;
iformat live_flv;
vfilter {
v error;
}
vcodec h264_qsv;
vprofile main;
vpreset medium;
vthreads 0;
vparams {
global_quality 25;
c:aac aac;
b:a 128;
f flv;
y rtmp://target1/live/stream;
c:v h264_qsv;
s 1280x720;
preset slower;
}
acodec aac;
abitrate 128;
oformat flv;
output rtmp://target2/live/stream;
}
}
Mit ffmpeg geht sehr viel, vielleicht könnte man da mit crop anfangen. Von HD 16:9 nach HD 9:16 ist natürlich etwas ungünstig, weil dann Pixel in der Höhe fehlen. OBS unterstützt jetzt doch auch multiple Outputs, oder? Damit ist das vielleicht etwas komfortable einzustellen, weil du dann dort dein Bild zusammensetzten kannst, wie du das möchtest.SirLoading schrieb:Und Frage 2:
Kann man hier auch einen Short Stream zusammenschustern?
Input: 1920x1080p60
Output: 1080x1920p60
Hier soll Facecam unten und ein Ausschnitt des Spiels oben sein.
Danke, passt schon :-).SirLoading schrieb:Hast du eine Kaffeekasse?
g 120
setzen, x264-params greift nicht bei h264_qsv.Ja das geht, macht es sicher etwas übersichtlicher.SirLoading schrieb:Habe für jede Plattform eine engine gemacht.
Sollte eigentlich gehen?!
vpreset veryslow
finde ich noch etwas suboptimal. Das verbraucht viel Rechenleistung und ist unter Umständen nicht nötig. Du streamst ja von einem Hertzner Server aus, der genug Bandbreite hat. Lieber ein weniger aggressives Preset nehmen und die Bitrate erhöhen, wenn das die Plattform erlaubt.