Metadados de rotação de vídeo em mp4
Eu desenvolvi um aplicativo de compartilhamento de vídeo para Android / iOS que grava um vídeo e o envia para o Amazon S3. Para compatibilidade, ambos os registros android / ios no formato mp4 com codecs H264 / AAC.
Os usuários podem fotografar retrato ou paisagem e o aplicativo, obtendo informações dos sensores, definir a rotação do arquivo (mediarecorder.setOrientationHint no android e algo semelhante no iOS)
Os vídeos do iOS funcionam bem no Android e vice-versa. O problema é quando eu quero reproduzir um vídeo em um navegador da web. Os navegadores que suportam o formato mp4 (por exemplo, chrome) exibem o vídeo, mas ignoram os metadados da rotação. O mesmo acontece quando reproduzo esses vídeos com o mplayer no linux.
A primeira solução que vem à mente é
ffmpeg -i in.mp4 -vf transpose=<rotation value> out.mp4
Existe uma razão pela qual os navegadores ignoram os metadados de rotação? Isso é um bug? Posso fazer algo para corrigir isso enquanto grava o vídeo?
Aqui estão 2 amostras do iOS e do Android, respectivamente.
Thansk