Ich möchte so etwas wie Apples Mac Pro-Produktseite http://www.apple.com/de/mac-pro/ erstellen, auf der die Wiedergabe von HTML5-Videos über Javascript gesteuert wird (durch manuelles Setzen des Attributs currentTime des Videos). Es funktioniert perfekt, wenn ich ihr Video verwende, aber überhaupt nicht mit meinen eigenen Videos. Wie kann ich meine Videos konvertieren, damit sie gut wiedergegeben werden?
Mit ffmpeg habe ich alles versucht, was mir einfiel
Ich habe auch verschiedene Optionen für die Handbremse ausprobiert, aber nichts hat geholfen.
ffmpeg -i macpro_main_desktop.mp4
zeigt an:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'macpro_main_desktop.mp4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42mp41
creation_time : 2013-10-16 22:55:31
Duration: 00:00:47.03, start: 0.000000, bitrate: d kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1120x840, 2797 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
Metadata:
creation_time : 2013-10-16 22:55:31
handler_name : Apple Video Media Handler
Stream #0:1(eng): Data: none (rtp / 0x20707472), 139 kb/s
Metadata:
creation_time : 2013-10-16 22:55:31
handler_name : hint media handler
Hier ist ein Beispiel für die Videos, die ich mit ffmpeg codiert habe:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video-720-main-30fps.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.15.102
Duration: 00:05:00.49, start: 0.033333, bitrate: 420 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 284 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
Das Apple-Video verwendet ein Profil mit weniger Referenzbildern und enthält auch eine Streaming-Hinweisspur.
Die folgende ffmpeg-Befehlsvorlage sollte eine schnell suchende MP4-Datei erstellen:
ffmpeg -i input -c:v libx264 -profile:v baseline -x264opts keyint=3:min-keyint=2 -{other video encoding parameters} -{audio encoding parameters} -movflags +faststart+rtphint output.mp4
Angesichts der eingestellten Profil- und GOP-Größen ist die Komprimierungseffizienz nicht besonders gut.
-r 25
. Was ich sehen kann, ist, dass Sie eine variable Bildrateneingabe mit einem falsch gekennzeichneten FPS-Wert haben, der im Container gespeichert ist, und das führt dazu, dass FFmpeg sehr große Zeitbasiswerte verwendet.tbn
? Wo sehen Sie auch die falsch gekennzeichneten FPS, die im Container gespeichert sind?tbr
Ihrer Eingabe - das ist die gespeicherte oder angenommene Framerate. fps
angezeigt von ffmpeg ist Gesamtbilder / Dauer. Worin testen Sie das Scrubben und haben Sie eine Datei, die schnell scrubbt?tbr
?
Gyan
MoritzVerloren
Gang
Gyan
Gang
Gyan
Gang
ffmpeg -i input.mp4 -profile:v baseline -movflags faststart+rtphint output.mp4
Gibt es weitere Optimierungen, die es noch weiter verbessern könnten?Gyan