ffmpeg: Android で認識される creation_time を持つビデオをエンコードする

ffmpeg: Android で認識される creation_time を持つビデオをエンコードする

私は、Android フォン (Samsung Galaxy S9+) で録画したビデオの一部を ffmpeg を使用して変換します。

ffmpeg -i src.mp4 -metadata creation_time="2013-05-02 22:01:04" -c:v libx265 -crf 24 -preset ultrafast -c:a aac -b:a 160k target.mp4

私の目標は、再エンコード後のメタデータ、特に creation_time を保持することです。

MediaInfo を見ると、creation_time は正しいようです。指定した日付はすべてのストリーム、さらにはコンテナ部分にも表示されます。

ただし、ファイルを Samsung にコピーすると、ギャラリーではその日付ではなく、変更日 (ファイル レベル) が表示されます。

したがって、ファイルの変更日を変更すると、Android でも変更されます。

携帯電話のカメラで録画した mp4 ファイルを取得し、ファイルの変更日を変更しても、携帯電話のギャラリーには元の日付が表示されます。

つまり、Samsung カメラが日付情報を保存する方法、または ffmpeg でエンコードする特別な方法など、何か問題があるはずで、その結果、creation_time が Android で認識されるようになります。

両方のファイルを MediaInfo で比較し、タイムスタンプを調べても、エンコードされたファイルに欠落しているものは見つかりませんでした。

誰か何かアイデアをお持ちですか?

関連情報