Ich habe eine Android/iOS-Video-Sharing-App entwickelt, die ein Video aufzeichnet und es auf Amazon S3 hochlädt. Aus Gründen der Kompatibilität nehmen beide Android/iOS im MP4-Format mit H264/AAC-Codecs auf.Mp4 Video Rotation Metadaten
Die Anwender können Hoch- oder Querformat und die App schießen, Informationen von den Sensoren bekommen, stellen Sie die Drehung der Datei (mediarecorder.setOrientationHint auf Android und etwas ähnliches auf iOS)
Die Videos von iOS spielen Geldbuße Android und umgekehrt. Das Problem ist, wenn ich ein Video in einem Webbrowser abspielen möchte. Die Browser, die das MP4-Format unterstützen (z. B. Chrome), zeigen das Video an, ignorieren jedoch die Rotationsmetadaten. Das Gleiche passiert, wenn ich diese Videos mit mplayer unter Linux wiedergebe.
Die erste Lösung, die den Sinn kommt, ist
ffmpeg -i in.mp4 -vf transpose=<rotation value> out.mp4
Gibt es einen Grund, warum Browser Rotation Metadaten ignorieren? Ist es ein Fehler? Könnte ich etwas tun, um dies zu beheben, während ich das Video aufnehme?
Hier sind zwei Beispiele von iOS bzw. Android.
Thansk