CLI 从 quicktime 或 mpeg 文件中提取日期时间戳(时间戳)。

问题描述 投票:0回答:1

有没有一种方法可以从Quicktime或MPEG2MPEG4的各种多媒体容器文件中提取日期时间或时间戳?我正在寻找一个理想的命令行工具。我已经能够使用下面的工具获得时间戳 ffprobe的一部分。ffmpeg 套装,但我还没有得到年、月、日。相机有一个时钟,所以我很确定这些信息是可用的。

这个数据文件的历史是,它最初是在miniDV上拍摄的,并通过Firewire 800使用QuicktimePlayer记录视频转移到Mac上。据悉,miniDV的格式是motion jpeg。该 file 命令报告说,该文件是 ISO Media, Apple QuickTime movie, Apple QuickTime (.MOV/QT).

% ffprobe -f lavfi -i "movie=filename.mov,fps=fps=25[out0]" -show_frames -show_streams -show_entries frame=pkt_pts_time -of csv=p=0 2>&1 | head -30
ffprobe version 4.2.2 Copyright (c) 2007-2019 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --disable-securetransport --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, lavfi, from 'movie=/Volumes/SanDiskSSD/Movies/Italy22.mov,fps=fps=25[out0]':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
0.000000
0.040000
0.080000
0.120000
0.160000
0.200000
0.240000
0.280000
0.320000
0.360000
0.400000
0.440000
0.480000
0.520000
0.560000
%

我希望输出显示年、月、日,这是拍摄的。

ffmpeg quicktime multimedia mpeg
1个回答
1
投票

既然你能够得到时间戳,那么你可以使用类似这样的工具。

ffmpeg -y -i name.mp4 -vf "drawtext=fontsize=36:fontcolor=blue:text='%{pts\:gmtime\:1675556887\:%A, %d, %B %Y %I\\\:%M\\\:%S %p}'" -preset ultrafast -f mp4 output.mp4

记得把这部分改一下 gmtime\:1575556887 到已经得到的时间戳


0
投票

在一些旧的DV Quicktime文件,我有。媒体信息 在它的 "General "部分显示了 "Recorded date"。

General
 Complete name                            : /path/to/some-dv.mov
 Format                                   : QuickTime
 Format/Info                              : Original Apple specifications
 Commercial name                          : DVCAM
 File size                                : 125 MiB
 Duration                                 : 34 s 520 ms
 Overall bit rate                         : 30.4 Mb/s
 Recorded date                            : 2008-03-16 16:50:46.000
 Encoded date                             : UTC 2010-03-31 16:20:48
 Tagged date                              : UTC 2010-03-31 16:21:25
 Writing library                          : Apple QuickTime
 Media/UUID                               : E70E5054-029E-42DE-A25F-7739BCBD7D0A

ffprobeffmpeg似乎只显示EncodedTagged日期,而不显示 "录制日期".

注意,即使是 mediainfo 只有在最近的版本中才会显示这个字段。Debian 9上的18.12-2版本会显示这个字段,但Ubuntu 16.04上的0.7.82-1版本不会。

© www.soinside.com 2019 - 2024. All rights reserved.