Video reencoden - welches Format?

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?

Der scale parameter sollte die Qualität steuern, da steht recht viel bei dir, ich weiss jetzt nicht was das alles heisst um ehrlich zu sein.

Wenn du es schaffst die Qualität zu verbessern, sollte die Dateigrösse enorm zunehmen.

Ist halt nicht praktikabel HD Videos auf uralt HW abspielen zu wollen IMO.

Es geht nun aber nicht anders, weil ich das Video auch auf einem alten Pi abspielen möchte. :smile: 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.

nee die ffmpeg parameter kenne ich nicht

welcher RaspberryPi ist das denn?

IIRC der 2. sollte schon HD wiedergeben können, mit dem richtigen player wie zB. KODI

Model 3b v.2. Aber ich habe raspbian installiert. :flushed:

Vielleicht hilft ja das ffprobe:

// Vorher:
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1920x804 [SAR 1:1 DAR 160:67], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
// Nachher:
Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 1280x720 [SAR 1:1 DAR 16:9], 104857 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc

Wie man sieht, hab ich an der framerate nix geändert…

Kodi und OpenElec gibt es ja für den Pi, einfach mal auf SD Karte installiere n und schauen ob er dann das Original file abspielen kann.

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. :angry:

Das os beim Pi wechseln, kommt für mich leider nicht infrage.

Kodi/OpenELEC sind für Medienwiedergabe gemacht, da hast du die höchsten Chancen, aber müsstest du halt mal probieren.

Eine andere SD Karte für ein anderes OS ist IMHO sehr bequem.

Ich kann auch kein Geld scheißen. :wink::relaxed:

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:

image

Das kann mein Smartphone, dann könnte es der Pi bestimmt auch.

Thema gelöst. :slight_smile: HandBrake greift übrigens aufs .NET Framework zurück.

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.

Hey, :wave:
Danke ionut, und willkommen zurück hier im Forum. :slight_smile:

ja, den Videospeicher hatte ich auch auf 128mb erhöht beim Pi, aber dennoch, h265 verträgt das Ding nicht…