Hi,
tja, wenn das denn alle mitmachen...
Aber wird hier ne OT Diskussion!
Wenn umstellen, dann wohl eher auf h.265! h.264 ist doch auch aussterbend!
MFg,
Stefan
Hi,
tja, wenn das denn alle mitmachen...
Aber wird hier ne OT Diskussion!
Wenn umstellen, dann wohl eher auf h.265! h.264 ist doch auch aussterbend!
MFg,
Stefan
Hallo,
Video Stream Transcoding Parameter sind in Live-Einstellungen konfigurierbar.
wollte mit GPU testen, geht leider nicht mit "ffmpeg-static" - kein Encoder "h264_nvenc" für meine GT630
V..... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V..... libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V..... h264_v4l2m2m V4L2 mem2mem H.264 encoder wrapper (codec h264)
V..... h264_vaapi H.264/AVC (VAAPI) (codec h264)
V..... libx265 libx265 H.265 / HEVC (codec hevc)
V..... hevc_vaapi H.265/HEVC (VAAPI) (codec hevc)
Encoder "ffmpeg-3.3.0"
V..... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V..... libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V..... h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... h264_vaapi H.264/AVC (VAAPI) (codec h264)
V..... nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)
V..... libx265 libx265 H.265 / HEVC (codec hevc)
V..... nvenc_hevc NVIDIA NVENC hevc encoder (codec hevc)
V..... hevc_vaapi H.265/HEVC (VAAPI) (codec hevc)
Gruss
Wolfgang
Das Feld für die Konfiguration könnte was größer sein.
Das nächste Problem, bei hevc wäre die Dekodierung per GPU wichtig, das muss aber vor -i <input> angegeben werden. Derzeit nur Angaben für Encoding möglich.
Geht das nicht, wenn dieser Parameter in den Packetizer command kommt? Dann wäre es nur noch vor "-analyzeduration 1.2M -probesize 5M".
Das Problem ist, das es unterschiedlich ist, ob mpeg2 oder hevc.
Hi,
Idee finde ich super, jetzt bin ich auch endlich mal zum Testen gekommen. Allerdings bekomme ich weder in Chrome noch in Firefox ein Bild. Fehler Chrome:
Cloud not play video - Error code: hls:4 - Firefox: FF: Error code: hls:networkError_manifestLoadError
Als Inputs habe ich hier DVB-C über lokale DVB-Karte und sat-ip. Beides gibt selbes Fehlerbild - ich vermute es liegt irgendwie an der Erkennung des Video-Codecs (-analyzeduration 1.2M -probesize 5M)
vdr log sieht eigentlich gut aus, ich denke es liegt irgendwie am Videostream (Consider increasing the value for the 'analyzeduration' and 'probesize' options)
Dec 28 18:12:41 xenial-rgb vdr: [3549] vdrlive::stream::vtype(27)
Dec 28 18:12:41 xenial-rgb vdr: [3549] vdrlive::stream::f_worker(0x7fbec8022f30)
Dec 28 18:12:41 xenial-rgb vdr: [3549] Live: FFmpegTread::StartFFmpeg() change channel 1 -> 5
Dec 28 18:12:41 xenial-rgb vdr: [3549] Live: FFmpegTread::StartFFmpeg() completed
Dec 28 18:12:41 xenial-rgb vdr: [3549] vdrlive::stream::StartFFmpeg(5)
Dec 28 18:12:41 xenial-rgb vdr: [13616] stream utility handler thread started (pid=3520, tid=13616, prio=high)
Dec 28 18:12:41 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() started channel = 5
Dec 28 18:12:41 xenial-rgb vdr: [13616] Live: FFmpegTread::Action::Open(1) ffmpeg started
Dec 28 18:12:41 xenial-rgb vdr: [3549] vdrlive::stream: generating EPG info
Dec 28 18:12:41 xenial-rgb vdr: [3543] Streamdev: Accepted new client (HTTP) 127.0.0.1:48634
Dec 28 18:12:41 xenial-rgb vdr: [13621] streamdev-livestreaming thread started (pid=3520, tid=13621, prio=high)
Dec 28 18:12:41 xenial-rgb vdr: [13621] ERROR (thread.c,258): Permission denied
Dec 28 18:12:41 xenial-rgb vdr: [13620] streamdev-writer thread started (pid=3520, tid=13620, prio=high)
Dec 28 18:12:41 xenial-rgb vdr: [13620] ERROR (thread.c,258): Permission denied
Dec 28 18:12:41 xenial-rgb vdr: [13622] device 1 receiver thread started (pid=3520, tid=13622, prio=high)
Dec 28 18:12:41 xenial-rgb vdr: [13623] device 1 TS buffer thread started (pid=3520, tid=13623, prio=high)
Dec 28 18:12:42 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() ffmpeg starting... 0
Dec 28 18:12:43 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() ffmpeg starting... 1
Dec 28 18:12:44 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() ffmpeg running 2
Dec 28 18:12:44 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 1/60
Dec 28 18:12:45 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 2/60
Dec 28 18:12:46 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 3/60
Dec 28 18:12:47 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 4/60
Dec 28 18:12:48 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 5/60
Dec 28 18:12:49 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 6/60
Dec 28 18:12:50 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 7/60
Dec 28 18:12:51 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 8/60
Dec 28 18:12:52 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 9/60
Dec 28 18:12:53 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 10/60
...
Dec 28 18:13:43 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() waiting: 60/60
Dec 28 18:13:44 xenial-rgb vdr: [3543] ERROR: read from client (HTTP) 127.0.0.1:48634 failed: Connection reset by peer
Dec 28 18:13:44 xenial-rgb vdr: [3543] streamdev-server: closing HTTP connection to 127.0.0.1:48634
Dec 28 18:13:44 xenial-rgb vdr: [13621] streamdev-livestreaming thread ended (pid=3520, tid=13621)
Dec 28 18:13:45 xenial-rgb vdr: [13620] streamdev-writer thread ended (pid=3520, tid=13620)
Dec 28 18:13:45 xenial-rgb vdr: [3543] buffer stats: 230488 (6%) used
Dec 28 18:13:45 xenial-rgb vdr: [13623] device 1 TS buffer thread ended (pid=3520, tid=13623)
Dec 28 18:13:45 xenial-rgb vdr: [13622] buffer stats: 230112 (4%) used
Dec 28 18:13:45 xenial-rgb vdr: [13622] device 1 receiver thread ended (pid=3520, tid=13622)
Dec 28 18:13:45 xenial-rgb vdr: [13616] Live: FFmpegTread::Action::Close(13617) disabled ffmpeg
Dec 28 18:13:45 xenial-rgb vdr: [13616] Live: FFmpegTread::Action() finished
Dec 28 18:13:45 xenial-rgb vdr: [13616] stream utility handler thread ended (pid=3520, tid=13616)
Alles anzeigen
Wenn ich ffmpeg direkt starte, sieht es eigentlich auch gut aus, es werden diverse Files ffmpeg_5_data* erstellt, allerdings sind sie meistens (?) mit VLC nicht abspielbar
Beispiel ARD HD per satip - Originalwerte -analyzeduration 1.2M -probesize 5M
ffmpeg -loglevel warning -analyzeduration 1.2M -probesize 5M -i http://localhost:3000/352 -map 0:v -map 0:a:0 -c:v copy -c:a aac -ac 2 -f hls -hls_time 1 -hls_start_number_source datetime -hls_flags delete_segments -master_pl_name master_5.m3u8 ffmpeg_5_data.m3u8
[tcp @ 0x556005e749c0] Connection to tcp://localhost:3000 failed (Connection refused), trying next address
[h264 @ 0x556005e7ed00] SPS unavailable in decode_picture_timing
[h264 @ 0x556005e7ed00] non-existing PPS 0 referenced
[h264 @ 0x556005e7ed00] SPS unavailable in decode_picture_timing
[h264 @ 0x556005e7ed00] non-existing PPS 0 referenced
[h264 @ 0x556005e7ed00] decode_slice_header error
[h264 @ 0x556005e7ed00] no frame!
--> Wiederholt sich 8x
[mpegts @ 0x556005e74000] Could not find codec parameters for stream 0 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x556005e74000] Could not find codec parameters for stream 1 (Unknown: none ([12][0][0][0] / 0x000C)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x556005e74000] Could not find codec parameters for stream 2 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x556005e74000] Could not find codec parameters for stream 10 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Alles anzeigen
Alternativ ARD HD per satip - Werte für -analyzeduration 2.2M -probesize 10M
eigentlich gleiche Fehlermeldungen, die Files ffmpeg_5_data* sind aber immer (?) mit VLC abspielbar
ffmpeg -loglevel warning -analyzeduration 2.2M -probesize 10M -i http://localhost:3000/352 -map 0:v -map 0:a:0 -c:v copy -c:a aac -ac 2 -f hls -hls_time 1 -hls_start_number_source datetime -hls_flags delete_segments -master_pl_name master_5.m3u8 ffmpeg_5_data.m3u8
[tcp @ 0x5619821279c0] Connection to tcp://localhost:3000 failed (Connection refused), trying next address
[h264 @ 0x561982131d00] SPS unavailable in decode_picture_timing
[h264 @ 0x561982131d00] non-existing PPS 0 referenced
[h264 @ 0x561982131d00] SPS unavailable in decode_picture_timing
[h264 @ 0x561982131d00] non-existing PPS 0 referenced
[h264 @ 0x561982131d00] decode_slice_header error
[h264 @ 0x561982131d00] no frame!
--> Wiederholt sich 24 Mal
[mpegts @ 0x561982127000] Could not find codec parameters for stream 0 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x561982127000] Could not find codec parameters for stream 1 (Unknown: none ([12][0][0][0] / 0x000C)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x561982127000] Could not find codec parameters for stream 2 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x561982127000] Could not find codec parameters for stream 10 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Alles anzeigen
Irgendwelche Ideen, woran das liegen kann? Bzw. welche Logfiles oder Tests helfen, den Fehler weiter einzugrenzen?
Ausgangsbasis: vdr-2.4.0 auf Ubuntu 16.04 mit ffmpeg 4.0.3-1~16.04.york0 (von hier https://launchpad.net/~jonathonf/+archive/ubuntu/ffmpeg-4) oder auch ffmpeg N-47764-g16ec62bbf4-static (https://johnvansickle.com/ffmp…g-git-amd64-static.tar.xz)
Danke
bärti
Änderung der Konfiguration funktioniert bei mir nicht, nach Änderung steht wieder der alte Inhalt da.
bärti analizeduration/probesize kommt immer wegen den Datenstreams die von den Sendern parallel mitgesendet werden. Wichtig ist dass der Video-Stream (normalerweise 0:0) und ein Audio-Stream (0:1) korrekt erkannt werden.
Ansonsten ist in deinem Fall alles richtig gelaufen. ffmpeg wurde nach 60 Sekunden beendet weil vom Browser nichts mehr geholt wurde.
Besser:
ich habe mal testhalber decoding eingetragen für hevc:
dann geht aber nur noch hevc, kein h264, kein mpeg2.
Hier die Auslastung der GPU, man sieht deutlich, dass das decoding die meiste Last bringt. Die CPU-Last ist dabei sehr gering.
Hi,
mein Problem ist behoben, dummer Fehler meinerseits.
Ich nutze live normalerweise hinter einem nginx als reverse proxy, wenn ich live direkt aufrufe, klappt alles wie es soll. Aus Gewohnheit hatte ich da nicht mehr dran gedacht. Ziemlich cool!
Hier gibt es denke ich noch einen kleinen Bug, dann würde es auch hinter dem reverse proxy funktionieren
Der HLS-Player versucht immer "/media/master_1.m3u8" zu laden, also mit "/" zu Beginn als absoluter Pfad.
- direkt hinter live klappt das als http://home:8008/media/master_1.m3u8
- der reverser proxy macht liefert live als http://home/live/ aus, da wird dann ein http://home/media/master_1.m3u8 - home/media gibt es aber nicht
Eine Änderung von "/media/master_1.m3u8" nach "media/master_1.m3u8" sollte das beheben und auch hinter dem reverse proxy funktionieren.
Ich habe mir das solange per nginx-config gefixt
location /media/ {
proxy_pass http://192.x.x.x:8008/media/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
ciao
chris
Mit
ffmpeg -decoders | grep cuvid
bekommst Du die möglichen decoders angezeigt:
V..... h264_cuvid Nvidia CUVID H264 decoder (codec h264)
V..... hevc_cuvid Nvidia CUVID HEVC decoder (codec hevc)
V..... mjpeg_cuvid Nvidia CUVID MJPEG decoder (codec mjpeg)
V..... mpeg1_cuvid Nvidia CUVID MPEG1VIDEO decoder (codec mpeg1video)
V..... mpeg2_cuvid Nvidia CUVID MPEG2VIDEO decoder (codec mpeg2video)
V..... mpeg4_cuvid Nvidia CUVID MPEG4 decoder (codec mpeg4)
V..... vc1_cuvid Nvidia CUVID VC1 decoder (codec vc1)
V..... vp8_cuvid Nvidia CUVID VP8 decoder (codec vp8)
V..... vp9_cuvid Nvidia CUVID VP9 decoder (codec vp9)
Es muss vor -i <input> folgendes eingefügt werden:
So nun ist das Kommando für ffmpeg voll flexibel.
Bei mit geht nun GPU transcoding auch. Das Problem war eine zu alte NVIDIA Treiber-Version, mit 410 läuft nun auch das decoding über die GPU
Ich habe dafür folgendes in der vdr setup.conf:
live.StreamVideoOpt0 = ffmpeg -loglevel warning -f mpegts -analyzeduration 1.2M -probesize 5M -hwaccel cuvid -c:v h264_cuvid -i <input> -map 0:v -map 0:a:0 -c:v h264_nvenc -preset slow -qmin 18 -qmax 30 -g 25 -r 25 -c:a aac -ac 2
live.StreamVideoOpt1 = ffmpeg -loglevel warning -f mpegts -analyzeduration 1.2M -probesize 5M -i <input> -map 0:v -map 0:a:0 -c:v h264_nvenc -preset slow -qmin 18 -qmax 30 -g 25 -r 25 -c:a aac -ac 2
live.StreamVideoOpt2 = ffmpeg -loglevel warning -f mpegts -analyzeduration 1.2M -probesize 5M -hwaccel cuvid -c:v mpeg2_cuvid -i <input> -map 0:v -map 0:a:0 -c:v h264_nvenc -preset slow -qmin 18 -qmax 30 -g 25 -r 25 -c:a aac -ac 2
live.StreamVideoOpt3 = ffmpeg -loglevel warning -f mpegts -analyzeduration 1.2M -probesize 5M -i <input> -map 0:v -map 0:a:0 -c:v h264_nvenc -preset slow -qmin 18 -qmax 30 -g 25 -r 25 -c:a aac -ac 2
Bitte die Life - Einstellungen anpassen/löschen da es da prinzipielle Änderungen gibt.
Wo finde ich da den Eintrag für hevc? Warum wird h264 transkodiert?
Edit:
Im Code ist die Erklärung: Opt1 = hevc.
jsffm passe die Bezeichnungen noch an. Läuft bei Dir alles? Ich kann hevc mit GPU nicht prüfen da mein Barebone "nur" eine 1st Gen Maxwell GPU hat. HEVC geht leider erst mit Pascal.
H264 transcodiere ich um die Datenrate auf mein 1MByte Upload Limit anzupassen. Dann kann ich auch von aussen über VPN streamen.
Default werde ich aber auf Software transcoding lassen, da die ffmpeg static builds nur das unterstützen.
Hat hier jemand eine Intel oder AMD GPU mit welcher man GPU transcoding laufen lassen könnte? Mit RaspPI sollte auch was zu machen sein...
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!