@Cabel330 said:
War da nicht noch der Vorteil der MP4 beim Remote Streaming?! Das der ?Header? an den Anfang der Datei gesetzt wird mit all den erforderlichen Infos der Datei?!
Die Frage stellt sich nicht bei MKV, da dort der Header grundsätzlich am Anfang der Datei sitzt.
Schließlich basiert WEBM als Streaming-Container auf MKV.
@OttoKerner said:
Du könntest ggfs. die Transkodierung der Audiospur weglassen. Die Ursprungsbitrate ist ja nur 201 kbps in diesem Beispiel. Modus im Audio-Tab auf ‘Kopieren’ und gut.
Jede Umwandlung frisst Qualität. Wenn man sie vermeiden kann, ist das gut.
Das gilt aber nur wenn es im AAC Format ist oder? Alles andere wurde immer Transkodiert bei mir.
Auch teste ich gerade meinen Fire TV Stick, innerhalb meines Netzwerkes direkter Stream. Wenn ich jetzt z.B. den FireTV Stick über einen Hotspot mit meinem Handy verbinde und so ausserhalb meines Netzwerkes bin, wird wieder Transkodiert. Woran könnte das liegen?
Ok.
Hatte nur mal einen Post mit dazu gehörigem Bild bezüglich des Aufbaus von einer MP4 von dir im Kopf… Wahrscheinlich war es A ) vielleicht bezogen auf einen anderen Container, oder
B ) Die Anpassung in zb Handbrake mit Web optimized… Don´t know… :#
@Cro-Cop said:
Das gilt aber nur wenn es im AAC Format ist oder?
Ja, AAC stereo konkret. 5.1 in AAC würde bei vielen Geräte wiederum Transcoding auslösen.
Auch teste ich gerade meinen Fire TV Stick, innerhalb meines Netzwerkes direkter Stream. Wenn ich jetzt z.B. den FireTV Stick über einen Hotspot mit meinem Handy verbinde und so ausserhalb meines Netzwerkes bin, wird wieder Transkodiert. Woran könnte das liegen?
Bitratenlimit. Wenn du nur eine ‘indirekte’ Verbindung zum Server hast, beträgt das Bandbreitenlimit 1 mbps (Mit Plex Pass sind es 2 mbps).
Man kann die Bitrate eines Videos nur durch Transkodieren verringern.
Das selbe passiert, wenn beim Abspielen festgestellt wird, dass die Pakete zu spät eintreffen. Das wäre bei einer UMTS Verbindung nicht wirklich ungewöhnlich. Dann wird ein Bandbreiten-Engpass in der Verbindung zum Server vermutet und die angestrebte Bitrate verringert. Was den Server wiederum zum Transkodieren veranlasst.
Den Plex Pass besitze ich. Kann ich die Transkodierung irgendwie umgehen? Mein Bruder schaut mit seinem FireTV Stick und ist nicht in meinem Netzwerk, manchmal wird transkodiert und manchmal ist es ein Direktstream, wie könnte ich das beeinflussen?
Mein Hotspot hat eine LTE Verbindung mit 25Mbit, sollte eigentlich ausreichen oder?
@Cro-Cop said:
Den Plex Pass besitze ich. Kann ich die Transkodierung irgendwie umgehen?
Nein. Es sei denn du verringerst die Bitrate deiner Dateien auf den kleinsten Nenner (was grottig aussieht)
Mein Hotspot hat eine LTE Verbindung mit 25Mbit, sollte eigentlich ausreichen oder?
Vergiss die Zahlen die dir die Werbung nennt. Das sind theoretische Maximalwerte, die du in der Praxis nur selten erreichst. Insbesondere bei Mobilfunk kannst du dich auf diese Zahlen auf keinen Fall verlassen. Mobilfunk ist Internet zweiter Klasse. Daran wird sich so schnell nichts ändern. Nicht ideal für Videostreaming. Insbesonder im Upstream, was ja für dich als Server Betreiber besonders wichtig ist.
Wenn er die Möglichkeit hat, PMP auf einen PC installieren und den mit dem Fernseher verbinden.
PMP erlaubt einen wesentlich größeren Netzwerk-Pufferspeicher. So kann man vorüber gehende Engpässe besser ausgleichen.
LTE habe ich ja nur benutzt, um zu schauen ob ich nach draußen Streamen kann ohne zu Transkodieren.
Was ich nicht verstehen, wenn ich kleinere Serien mit den Einstellungen erstelle, funktioniert das Streamen nach aussen mit dem Fire TV, Filme jedoch nicht.
Der Server hat eine Anbindung von 100Mbits Down und 12 Mbits Up
@Cro-Cop said:
Was ich nicht verstehen, wenn ich kleinere Serien mit den Einstellungen erstelle, funktioniert das Streamen nach aussen mit dem Fire TV, Filme jedoch nicht.
Nicht der Umstand dass das eine Folgen und das andere Filme sind ist hier entscheidend, sondern wie die Dateien im inneren aussehen. Welcher Video und Audio Codec, welche Bandbreite etc. pp.
Poste also bitte auch mal die Plex XML info eines Filmes zum Vergleich.
Der Server hat eine Anbindung von 100Mbits Down und 12 Mbits Up
Eines muss man immer im Hinterkopf behalten: die vom ISP genannten Zahlen sind immer “maximal” Werte, die keinesfalls garantiert werden.
Es gibt immer Schwankungen in der tatsächlich nutzbaren Kapazität. Manchmal nur kurzzeitig, manchmal auch tageszeitabhängig (wenn alle nach Hause kommen und das große Freizeit-Videostreamen beginnt…)
Vorausgesetzt dein Plex Server nutzt den Upstream deines Anschlusses allein (was praktisch auch nie der Fall sein wird), solltest du hier mit max 6 MBit/s Kapazität rechnen.
Außerdem hängt es auch davon ab, ob deine Dateien mit ‘konstanter Bitrate’ oder mit ‘konstanter Qualität’ kodiert wurden.
Letzteres ist für Streaming eigentlich ungeeignet, da bei konstanter Qualität extreme, kurzzeitige Schwankungen in der Bitrate nach oben auftreten können.
Dann kommt auch noch der jeweils genutzte Client ins Spiel. Manche der kleinen ‘Sticks’ haben nur einen sehr kleine Netzwerkpuffer, womit sie solche Schwankungen der Bitrate nach oben ausgleichen könnten. Plex weiß das und passt die Bitratenberechnung daran an. Soll heißen: abhängig vom verwendeten Client kann Plex Server eine andere Bitrate als obere Grenze einstellen, ab deren Überschreitung dann transkodiert wird.
Mir ist das schon bewusst, das verschiedene Faktoren dabei noch eine Rolle spielen. Ich hab bisher immer die konstante Bitrate genommen und 5000 eingestellt, damit habe ich nur sehr wenig Qualitätsverlust bemerkt und die Dateien wurden nicht unbedingt größer als 4-5 GB. Intern funktioniert alles wunderbar, nur das Streamen nach außen Transkodiert dann wie bescheuert. Hier wäre ein Film, den ich heute mal versucht habe mit etwas anderen Einstellungen umzuwandeln.
Medien
Video Resolution 1080p
Dauer 2:14:06
Bitrate 3871 kbps
Width 1920
Height 800
Aspect Ratio 2.35
Container MP4
Video Frame Rate 24p
Web Optimized Ja
Audio Profile lc
Video Profile main
Teil
Dauer 2:14:06
File 12 Years a Slave (2013).mp4
Size 3.63 GB
Audio Profile lc
Container MP4
Web Optimized Ja
Video Profile main
Codec H264
Bitrate 3991 kbps
Sprache English
Bit Depth 8
Chroma Location left
Chroma Subsampling 4:2:0
Frame Rate 23.976 fps
Height 800
Level 4.0
Profile main
Ref Frames 4
Stream Identifier 1
Width 1920
Codec AAC
Kanäle Stereo
Sprache Deutsch
Audio Channel Layout stereo
Profile lc
Sampling Rate 48000 Hz
Stream Identifier 2
Das sieht alles ziemlich gut aus.
Keine Soft-Untertitel daneben gelegt oder per Plugin geladen?
Hier müsstest du tatsächlich mal nach dem Start der Wiedergabe das Plex Media Server.log
anschauen. (Vorher ‘Debug’ Logging aktivieren. NICHT ‘ausführlich’ aktiveren!)
Filtere nach Zeilen die MDE:
enthalten
Wie gesagt, intern Funktioniert es bei mir über Chrome, mein TV, dem Plex Media Player und dem Fire TV Stick. Leider kann ich gerade niemanden erreichen, der mal ausserhalb meines Netzwerkes mit dem Fire TV Stick testen soll.
Bei dem Film sind keine Untertitel vorhanden bzw. auch keine Plugins aktiviert, die für Untertitel zuständig wären.
Sobald ich von ausserhalb Testen konnte, werde ich die NICHT ausführlichen Logs nachreichen. Danke das du dir die Zeit nimmst 
Hier der Log zu Firefox extern abgespielt. Mittlerweile geht kein Film mehr über Direkt Stream raus aus meinem Netzwerk, egal welcher Client. Nur Serien, da funktioniert es noch, ich versteh das einfach nicht mehr.
! DEBUG - MDE: Selected protocol dash; container: mp4
! MDE: analyzing media item 85543
! Prometheus - Dunkle Zeichen (2012): Direct Play is disabled
! Prometheus - Dunkle Zeichen (2012): media must be transcoded in order to use the dash protocol
! Prometheus - Dunkle Zeichen (2012): no direct play video profile exists for http/mp4/h264
! DEBUG - MDE: Prometheus - Dunkle Zeichen (2012): no direct play video profile exists for http/mp4/h264/aac
! DEBUG - MDE: Prometheus - Dunkle Zeichen (2012): Direct Streaming is disabled, so video stream will be transcoded
! DEBUG - MDE: Prometheus - Dunkle Zeichen (2012): no remuxable profile found, so video stream will be transcoded
! MDE: Cannot direct stream video stream due to profile or setting limitations
! DEBUG - Codecs: hardware transcoding: testing API vaapi
! DEBUG - [FFMPEG] - Format 0x32315659 → yuv420p.
! DEBUG - [FFMPEG] - Format 0x30323449 → unknown.
! DEBUG - [FFMPEG] - Format 0x3231564e → nv12.
! DEBUG - [FFMPEG] - Format 0x32595559 → yuyv422.
! DEBUG - [FFMPEG] - Format 0x59565955 → uyvy422.
! DEBUG - [FFMPEG] - Format 0x48323234 → yuv422p.
! DEBUG - [FFMPEG] - Format 0x58424752 → rgb0.
! DEBUG - [FFMPEG] - Format 0x58524742 → bgr0.
! DEBUG - [FFMPEG] - Format 0x30313050 → p010le.
! DEBUG - [FFMPEG] - Created surface 0x4000000.
! DEBUG - [FFMPEG] - Direct mapping possible.
! DEBUG - Scaled up video bitrate to 7459Kbps based on 1.500000x fudge factor.
! DEBUG - MDE: Prometheus - Dunkle Zeichen (2012): Audio Direct Streaming is disabled, so video’s audio stream will be transcoded
! DEBUG - MDE: Cannot direct stream audio stream due to profile or setting limitations
! DEBUG - MDE: Prometheus - Dunkle Zeichen (2012): selected media 0 / 85543
! DEBUG - Streaming Resource: Adding session 0x7f765342a3e0:djan0eq9ew7gv7vfi65asikf which is using 7949kbps of WAN bandwidth. Used is now 7949kbps
! DEBUG - Streaming Resource: Adding session 0x7f765342a3e0:djan0eq9ew7gv7vfi65asikf which is using transcoder slot. Used slots is now 1
! DEBUG - Streaming Resource: Added session 0x7f765342a3e0:djan0eq9ew7gv7vfi65asikf
! DEBUG - Streaming Resource: Reached Decision id=60688 codes=(MDE=3001,Not enough bandwidth for direct play of this item. Required bandwidth is 10606kbps and only 8000kbps is available. General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. No direct play video profile exists for protocol http, with container mp4, and video codec h264. Transcode=1001,Direct play not available; Conversion OK.) media=(id=85543 part=(id=94812 decision=transcode container=mp4 protocol=dash streams=(Video=(id=215745 decision=transcode bitrate=7432 encoder=h264_vaapi width=1920 height=800) Audio=(id=215746 decision=transcode bitrate=138 encoder=aac channels=2 rate=48000))))
! DEBUG - Completed: [88.152.129.5:52040] 200 GET /video/:/transcode/universal/decision?hasMDE=1&path=%2Flibrary%2Fmetadata%2F60688&mediaIndex=0&partIndex=0&protocol=dash&fastSeek=1&directPlay=1&directStream=1&subtitleSize=100&audioBoost=100&location=wan&addDebugOverlay=0&autoAdjustQuality=0&directStreamAudio=1&mediaBufferSize=102400&session=u3d0myghjvh3unignneef3u0&subtitles=burn&Accept-Language=de (12 live) TLS GZIP 52ms 3913 bytes (pipelined: 3)
! DEBUG - We’re going to try to auto-select an audio stream for account 12802478.
! DEBUG - Selecting best audio stream for part ID 94812 (autoselect: 1 language: de)
! DEBUG - We’re going to try to auto-select a subtitle.
! DEBUG - Audio Stream: 215746, Subtitle Stream: -1
! DEBUG - [Now] User is Blue.Tiger (ID: 12802478)
! DEBUG - [Now] Device is Firefox (Firefox).
! DEBUG - [Now] Apr 14, 2018 19:35:01.423 [0x7f764c37d700] Profile is Firefox
! [Now] Updated play state for /library/metadata/60688.
! DEBUG - HubCache: Expiring ‘1/home.movies.recent/hubs/12/de’ becApr 14, 2018 19:35:01.423 [0x7f764c37d700] ause event plex.event.play.session.state.update referenced an item the hub contained
! DEBUG - HubCache: Expiring ‘1/home.movies.recent/hubs/12/en’ because event plex.event.play.session.state.update referenced an item the hub contained
! DEBUG - HubCache: Expiring ‘12802478/home.movies.recent/hubs/12/de’ because event plex.event.play.session.state.update referenced an item the hub contained
! Apr 14, 2018 19:35:01.423 [0x7f764c37d700] DEBUG - HubCache: Expiring ‘12802478/home.movies.recent/hubs/12/en’ because event plex.event.play.session.state.update referenced an item the hub contained
! Apr 14, 2018 19:35:01.423 [0x7f764c37d700] DEBUG - HubCache: Expiring ‘17554517/home.movies.recent/hubs/6/de-de’ because event plex.event.play.session.state.update referenced an item the hub contained
Laut diesem Logauszug benötigt die Datei 10 MBit/s, Da du nur 8 zur Verfügung hast, ist Transcoding die logische Folge.
Hast du vielleicht einen Vorschlag wie ich das verringern könnte? Oder wodurch sich das zusammensetzt das gerade 10 MBit/s benötigt werden?
@Cro-Cop said:
Hast du vielleicht einen Vorschlag wie ich das verringern könnte? Oder wodurch sich das zusammensetzt das gerade 10 MBit/s benötigt werden?
Die Bitrate einer Datei kann man nur mittels Transcoding verringern.
Die 10 MBit/s kommen durch die Summe der benötigten Bitraten von Video und Audiospur zusammen.
Plex macht eine Tiefenanalyse der Datei. Dabei wird die tatsächlich benötigte Bitrate der Datei beim Abspielen festgestellt. (Andere Programme teilen dir nur die durchschnittliche Bitrate mit. Die berücksichtigt evtl. auftretende Spitzen nicht.)
mehr dazu hier: https://forums.plex.tv/discussion/comment/1617871/#Comment_1617871
Das wird jetzt etwas zu technisch für mich. Ich versteh nicht so ganz wie ich da gegen vorgehen kann. Wandle ich nun die Filme mit ABR, Konstante Qualität oder Konstante Quantisierung um? Und darf ich dann eine bestimmte Bitrate nicht übersteigen?
Du nimmst “2-pass ABR” und stellst eine Bitrate ein, die
- genügend Platz für die Audiospur
- trotzdem noch etwas “Puffer” zum oberen Limit von 8MBit/s
hat.
Wenn ich 2-pass ABR mit 4000 verwende, merke ich schon, dass es Pixelfehler in der Qualität gibt. Aber genau bei dieser Größe gab es ja wie da oben schon zu sehen Probleme mit dem Direct Stream. Ist die Bitrate mit 256 kbps bei Audio schon zu hoch angesetzt?
@Cro-Cop said:
Wenn ich 2-pass ABR mit 4000 verwende, merke ich schon, dass es Pixelfehler in der Qualität gibt.
Mit nur 4mbps wirst du immer wieder solche Effekte sehen in einigen Situationen.
Da hilft nur mehr Bitrate (die du nicht hast) oder das Verringern der Auflösung auf 720p.
Aber genau bei dieser Größe gab es ja wie da oben schon zu sehen Probleme mit dem Direct Stream. Ist die Bitrate mit 256 kbps bei Audio schon zu hoch angesetzt?
Nein. Ich finde 256 ist ein guter Wert. Die Hälfte ist m.M. eindeutig zu wenig.
Ich danke dir für deine Hilfe, das hat mir alles sehr weitergeholfen und ich verstehe nun etwas mehr wie Plex funktioniert.
Da ich ein NAS habe und es nicht so Leistungsstark ist, habe ich immer die “Hardwarebeschleunigung verwenden, falls verfügbar” aus gehabt, weil ich befürchtet habe das es die CPU zu stark belastet.
Nach einem Test mit 5 Nutzern gleichzeitig und aktivierter Hardwarebeschleunigung, komme ich beim Transcodieren NUR auf 25% CPU Auslastung, meine ganzen Probleme sind somit einfach verpufft. Ich Wandle also alles mit deinen empfohlenen Einstellungen um und habe Intern den Direct Stream, sowie auf Serien extern ebenfalls. Nochmals vielen Dank für alles!