如何解决FFMPEG在MTS到MP4流程上未使用正确的创建日期进行转换
我正在将MTS转换为MP4的过程中,视频/音频和创建日期保持不变。
这是我的过程:
我有test.MTS,我将其转换为test.MP4。
拳头。我的MTS:
OSX:oo bob$ f="test.MTS
OSX:oo bob$ DATE=$(exiftool -d "%Y-%m-%d %H:%M:%s" "$f" | grep "^Date.*Original" | awk '{print $4,$5;}')
OSX:oo bob$ DATE2=$(exiftool -d "%Y-%m-%d %H:%M:%s%z" "$f" | grep "^Date.*Original" | awk '{print $4,$5;}')
OSX:oo bob$ echo $DATE
2018-10-26 20:53:27
OSX:oo bob$ echo $DATE2
2018-10-26 20:53:27+0000
我使用$ DATE和$ DATE2来设置UTC并尝试其他选项。
现在,让我们看看Exiftool和mediainfo对我的MTS的看法:
OSX:oo bob$ exiftool $f | grep "Date/Time"
File Modification Date/Time : 2018:10:26 21:56:55+02:00
File Access Date/Time : 2020:11:02 16:12:09+01:00
File Inode Change Date/Time : 2020:11:01 02:48:49+01:00
Date/Time Original : 2018:10:26 20:53:27+00:00
OSX:oo bob$ mediainfo $f | grep "date"
Recorded date : 2018-10-26 20:53:27+00:00
到此为止。.所有好的日期都是2018-10-26 20:53:27+00:00 (so UTC or GMT+0)
。
现在我的命令进行了转换:
ffmpeg -i "$f" -y -acodec aac -ab 128k -vcodec copy -f mp4 -Metadata creation_time="$DATE" "./${f%.MTS}.MP4"
ffmpeg -i "$f" -y -acodec aac -ab 128k -vcodec copy -f mp4 -Metadata creation_time="$DATE2" "./${f%.MTS}_2.MP4"
我尝试了两个选项,$ DATE(没有时区)和$ DATE2(有时区)。转换正常,让我们看看结果:
OSX:oo bob$ exiftool "./${f%.MTS}.MP4" | grep "Date"
File Modification Date/Time : 2020:11:02 14:53:24+01:00
File Access Date/Time : 2020:11:02 16:13:48+01:00
File Inode Change Date/Time : 2020:11:02 14:53:24+01:00
Create Date : 2018:10:26 18:53:27
Modify Date : 2018:10:26 18:53:27
Track Create Date : 2018:10:26 18:53:27
Track Modify Date : 2018:10:26 18:53:27
Media Create Date : 2018:10:26 18:53:27
Media Modify Date : 2018:10:26 18:53:27
OSX:oo bob$ exiftool "./${f%.MTS}_2.MP4" | grep "Date"
File Modification Date/Time : 2020:11:02 14:53:13+01:00
File Access Date/Time : 2020:11:02 16:13:48+01:00
File Inode Change Date/Time : 2020:11:02 14:53:13+01:00
Create Date : 2018:10:26 20:53:27
Modify Date : 2018:10:26 20:53:27
Track Create Date : 2018:10:26 20:53:27
Track Modify Date : 2018:10:26 20:53:27
Media Create Date : 2018:10:26 20:53:27
Media Modify Date : 2018:10:26 20:53:27
OSX:oo bob$ mediainfo "./${f%.MTS}.MP4" | grep "date"
Recorded date : 2018-10-26 20:53:27+00:00
Encoded date : UTC 2018-10-26 18:53:27
Tagged date : UTC 2018-10-26 18:53:27
Encoded date : UTC 2018-10-26 18:53:27
Tagged date : UTC 2018-10-26 18:53:27
Encoded date : UTC 2018-10-26 18:53:27
Tagged date : UTC 2018-10-26 18:53:27
OSX:oo bob$ mediainfo "./${f%.MTS}_2.MP4" | grep "date"
Recorded date : 2018-10-26 20:53:27+00:00
Encoded date : UTC 2018-10-26 20:53:27
Tagged date : UTC 2018-10-26 20:53:27
Encoded date : UTC 2018-10-26 20:53:27
Tagged date : UTC 2018-10-26 20:53:27
Encoded date : UTC 2018-10-26 20:53:27
Tagged date : UTC 2018-10-26 20:53:27
到这里似乎"./${f%.MTS}_2.MP4"
(test_2.MP4)是正确的,但是,如果我们检查时期中的值,则:
OSX:oo bob$ exiftool -d "%s" $f | grep "Date/Time"
File Modification Date/Time : 1540583815
File Access Date/Time : 1604329945
File Inode Change Date/Time : 1604195329
Date/Time Original : 1540587207
OSX:oo bob$ exiftool -d "%s" "./${f%.MTS}.MP4" | grep "Date"
File Modification Date/Time : 1604325204
File Access Date/Time : 1604330053
File Inode Change Date/Time : 1604325204
Create Date : 1540572807
Modify Date : 1540572807
Track Create Date : 1540572807
Track Modify Date : 1540572807
Media Create Date : 1540572807
Media Modify Date : 1540572807
OSX:oo bob$ exiftool -d "%s" "./${f%.MTS}_2.MP4" | grep "Date"
File Modification Date/Time : 1604325193
File Access Date/Time : 1604330058
File Inode Change Date/Time : 1604325193
Create Date : 1540580007
Modify Date : 1540580007
Track Create Date : 1540580007
Track Modify Date : 1540580007
Media Create Date : 1540580007
Media Modify Date : 1540580007
顺便说一句,我现在在格林尼治标准时间+1(这是我的本地时区)
如您所见:
-
使用时区(test_2.MP4)进行的转换似乎是正确的,除了当我使用历元转换时,显示完全不同的时间:
原始MTS>日期/时间原文:1540587207 没有时区的MP4>创建日期:1540572807 具有时区的MP4>创建日期:1540580007
MTS >> test.MP4 >> 14400 seg(4h)
MTS >> test_2.MP4 >> 7200段(2h)
-
Mediainfo与exiftool的输出相同。
¿¿???这是怎么回事?为什么exiftool的日期相同但又不同?为什么是4h或2h?...我在这里错过了一些东西。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。