バッチセットMP4は、ファイル名から日付メタデータを生成します。

バッチセットMP4は、ファイル名から日付メタデータを生成します。

20190228_155905.mp4Linuxシステムには名前が似ていますが、メタデータを持たないMP4ファイルがたくさんあります。以前はいくつかのjpgで同様の問題があり、手動で解決しました。

exiv2 -M"set Exif.Photo.DateTimeOriginal 2018:09:18 20:11:04" 20180918_201104.jpg

しかし、私が知っている限り、これはDateTimeOriginalビデオではなく画像でのみ機能します。メタデータを含むビデオには、  Xmp.video.MediaCreateDate私が望むものと似たフィールドがあります。これにはUnixタイムスタンプが含まれているようですので、ファイル名から日付を取得してUnixタイムスタンプに変換して値をXmp.video.MediaCreateDate。それとも私が仕事を複雑にしているのでしょうか?

編集:不明な場合は、プログラムがメタデータごとにすべてのメディアファイルをソートできるように、日付を含むファイル名を使用してmp4ファイルに作成日メタデータを設定したいと思います。

ベストアンサー1

これは以下を使用します。ffmpegsudo apt install ffmpegインストール)正しいファイル名で動作します。古いファイルをメタデータが設定されている新しいファイルに置き換えます。&& mv "~$f" "$f"まず、その部分なしで試してみてください。

$ for f in *.mp4; do ffmpeg -i "$f" -metadata creation_time="${f:0:4}-${f:4:2}-${f:6:2} ${f:9:2}:${f:11:2}:${f:13:2}" -codec copy "~$f" && mv "~$f" "$f"; done

メタデータを確認してください。

$ ffprobe -v quiet 20190228_155905.mp4 -print_format json -show_entries stream=index,codec_type:stream_tags=creation_time:format_tags=creation_time

おすすめ記事