Hallo,
ich möchte ein 1080p x265 mkv Video in ein anderes Format umwandeln, weil mein Handy es doch nicht schafft, das flüssig zu decoden/abzuspielen… Also habe ich mich ein bisschen schlau gemacht, welches Format die niedrigsten hardware requirements an den Prozessor stellt, und da bin ich bei 720p MPEG-1 mpeg gelandet. Reencoded hab ich das Video mit ffmpeg: ffmpeg -i input.mkv -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1" output.mpeg
Die gute Nachricht:
Ich kann es jetzt mit dem Handy flüssig abspielen.
Die schlechte Nachricht:
Die Qualität hat sehr gelitten und es haben sich „Blöcke“ gebildet und es ist unscharf geworden.
Gibt es da irgendeinen Trade-Off, der mir weiterhelfen würde?
Es geht nun aber nicht anders, weil ich das Video auch auf einem alten Pi abspielen möchte. Der ruckelt nicht nur, sondern überhitzt auch… Dagegen ist die file size aber fast egal…
Hättest du eine Idee, was man bei „scale“ angeben könnte? Es sieht wirklich nach deutlichen Vierecken aus momentan.
Ich könnte ja die framerate auf gut Glück erhöhen, wenn dann die file size vergrößert wird, müsste die Qualität doch besser sein und die Pixelbildung reduziert sein…
Aber du merkst schon, das ist hochgradiges Stochern im Nebel… Mir fehlt diesbezüglich einfach die Wissensbasis. Ich weiß nur, dass die file size vorher relativ klein ist und nach dem Verkleinern und Konvertieren relativ groß ist, die Qualität jedoch deutlich leidet.
Das os beim Pi wechseln, kommt für mich leider nicht infrage.
Aber vielleicht installiere ich doch mal Kodi… Habe aber noch eine Lösung gefunden, anstatt mit ffmpeg könnte ich mit HandBrake deencoden, das hat eine Voreinstellung für Android:
Das kann mein Smartphone, dann könnte es der Pi bestimmt auch.
Der wesentliche Punkt ist das Format. hevec auch als h265 bekannt ist ein sehr effektiver Codec. Kleine Dateigröße und hohe Bildqualität. Das ist das Ausgangsvideo.
Davor war h264 der quasi Standard.
Das Grundlegende Problem, gerade auf Rechenschwachen Geräten ist, dass die Prozessoren nicht hinterherkommen das Ganze flüssig abzuspielen.
Beim Raspberry PI ist das decoding von h264 per Hardware möglich. Wenn mich nicht alles täuscht, ist das ein Teil der GPU der sich darum kümmert. Das funktioniert dort in der Regel bis zu 1080.
h265 ist allerdings nicht unterstützt und wird dann mit der CPU gemacht, was allerdings zu aufwendig ist und dann zu ruckeln etc. führt.
Bei Smartphones wird die Sache ähnlich sein. Wie die Lage bei aktuellen und neuen Geräten mit h265 ist weiß ich aber nicht.
Zudem ist es auch noch ein Lizensrechtliches Problem was ein Gerät abspielen kann. Für diverse Sachen kann man bestimmte Sachen nachlizensieren. Damit kann dann ein Raspberry PI diverse Sachen auch per Hardware decoden. https://codecs.raspberrypi.org/
Kurz um, Video nach h264 encoden und es sollte vernünftig laufen.
Zum Abspielen, dann zum Beispiel den OMXPlayer verwenden. Der ist auf dem Raspi darauf ausgelegt die Hardwarebeschleunigung richtig zu verwenden.