Насколько я могу сказать, следующая команда ffmpeg должна скопировать все существующие метаданные во входном файле в выходной файл и изменить указанное поле метаданных в выходном файле:

ffmpeg -i VID_20130502_220104.avi -metadata creation_time="2013-05-02 22:01:04" -codec copy VID_20130502_220104-2.avi

Вместо этого он, похоже, удаляет все метаданные из выходного файла. Вот вывод нескольких команд. Я схожу с ума. Я думаю, что это должно работать, но почему это не так?

Обратите внимание, что я НЕ пытаюсь изменить дату атрибута файла. Из моих вставленных логов вы можете ясно увидеть, что ffmpeg читает "creation_time" во входном файле, а exiftool читает «Date /Time Original» и "Create Date", которые все являются «2011:01:01 00:00:00», что отличается от всех атрибутов даты файла. Проблема заключается в том, что в выходном файле ни метафайлы ffmpeg, ни exiftool больше не видят, его больше нет. ffmpeg, кажется, чередовал метаданные из выходного файла.

Команда для редактирования времени создания:

ffmpeg -i VID_20130502_220104.avi -metadata creation_time="2013-05-02 22:01:04" -codec copy VID_20130502_220104-2.avi

ffmpeg version 3.1.5 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 47.100 /  6. 47.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, avi, from 'VID_20130502_220104.avi':
  Metadata:
    encoder         : 
    maker           : NIKON
    model           : COOLPIX S4300
    creation_time   : 2011-01-01 00:00:00
  Duration: 00:01:30.50, start: 0.000000, bitrate: 32135 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 31782 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, 1 channels, s16, 352 kb/s
[avi @ 000000000032ad40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, avi, to 'VID_20130502_220104-2.avi':
  Metadata:
    creation_time   : 2013-05-02 22:01:04
    maker           : NIKON
    model           : COOLPIX S4300
    ISFT            : Lavf57.41.100
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, q=2-31, 31782 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, mono, 352 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  891 fps=0.0 q=-1.0 size=  116171kB time=00:00:29.69 bitrate=32043.1kbits/s speed=59.4x    
frame= 1739 fps=1739 q=-1.0 size=  227191kB time=00:00:57.96 bitrate=32107.5kbits/s speed=  58x    
frame= 2609 fps=1739 q=-1.0 size=  340940kB time=00:01:26.96 bitrate=32115.9kbits/s speed=  58x    
frame= 2715 fps=1734 q=-1.0 Lsize=  355018kB time=00:01:30.49 bitrate=32136.3kbits/s speed=57.8x    
video:350984kB audio:3897kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.038597%

Команда для проверки метаданных выходного файла с помощью ffmpeg:

ffmpeg -i VID_20130502_220104-2.avi

ffmpeg version 3.1.5 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 47.100 /  6. 47.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, avi, from 'VID_20130502_220104-2.avi':
  Metadata:
    encoder         : Lavf57.41.100
  Duration: 00:01:30.50, start: 0.000000, bitrate: 32136 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 31782 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, 1 channels, s16, 352 kb/s
At least one output file must be specified

Команда для проверки метаданных входного файла с помощью exiftool:

exiftool.exe VID_20130502_220104.avi

ExifTool Version Number         : 10.30
File Name                       : VID_20130502_220104.avi
Directory                       : .
File Size                       : 347 MB
File Modification Date/Time     : 2013:05:13 16:33:52-04:00
File Access Date/Time           : 2015:11:10 23:08:25-05:00
File Creation Date/Time         : 2015:11:10 23:08:25-05:00
File Permissions                : rw-rw-rw-
File Type                       : AVI
File Type Extension             : avi
MIME Type                       : video/x-msvideo
Frame Rate                      : 30
Max Data Rate                   : 488.3 kB/s
Frame Count                     : 2715
Stream Count                    : 2
Stream Type                     : Video
Video Codec                     : mjpg
Video Frame Rate                : 30
Video Frame Count               : 2715
Quality                         : 10000
Sample Size                     : Variable
Image Width                     : 1280
Image Height                    : 720
Planes                          : 1
Bit Depth                       : 24
Compression                     : MJPG
Image Length                    : 2764800
Pixels Per Meter X              : 0
Pixels Per Meter Y              : 0
Num Colors                      : Use BitDepth
Num Important Colors            : All
Audio Codec                     : 
Audio Sample Rate               : 22050
Audio Sample Count              : 1995256
Encoding                        : Microsoft PCM
Num Channels                    : 1
Sample Rate                     : 22050
Avg Bytes Per Sec               : 44100
Bits Per Sample                 : 16
Maker Note Type                 : NIKON
Maker Note Version              : 0.1.0.0
Make                            : NIKON
Model                           : COOLPIX S4300
Software                        : V1.0
Equipment                       : NIKON DIGITAL CAMERA
Orientation                     : Horizontal (normal)
Exposure Time                   : 1/15
F Number                        : 3.5
Exposure Compensation           : 0
Max Aperture Value              : 3.2
Metering Mode                   : Multi-segment
Focal Length                    : 4.6 mm
X Resolution                    : 72
Y Resolution                    : 72
Resolution Unit                 : inches
Date/Time Original              : 2011:01:01 00:00:00
Create Date                     : 2011:01:01 00:00:00
Focus Mode                      : AF-S
Digital Zoom                    : 1
Color Mode                      : COLOR
Sharpness                       : AUTO
White Balance                   : NORMAL
Noise Reduction                 : OFF
Thumbnail Image                 : (Binary data 3082 bytes, use -b option to extract)
Aperture                        : 3.5
Duration                        : 0:01:30
Image Size                      : 1280x720
Megapixels                      : 0.922
Shutter Speed                   : 1/15
Focal Length                    : 4.6 mm

Команда для проверки метаданных выходного файла с помощью exiftool:

exiftool.exe VID_20130502_220104-2.avi

ExifTool Version Number         : 10.30
File Name                       : VID_20130502_220104-2.avi
Directory                       : .
File Size                       : 347 MB
File Modification Date/Time     : 2016:11:01 00:17:38-04:00
File Access Date/Time           : 2016:11:01 00:17:36-04:00
File Creation Date/Time         : 2016:11:01 00:15:18-04:00
File Permissions                : rw-rw-rw-
File Type                       : AVI
File Type Extension             : avi
MIME Type                       : video/x-msvideo
Frame Rate                      : 30
Max Data Rate                   : 3923 kB/s
Frame Count                     : 2715
Stream Count                    : 2
Stream Type                     : Video
Video Codec                     : MJPG
Video Frame Rate                : 30
Video Frame Count               : 2715
Quality                         : Default
Sample Size                     : Variable
Image Width                     : 1280
Image Height                    : 720
Planes                          : 1
Bit Depth                       : 24
Compression                     : MJPG
Image Length                    : 2764800
Pixels Per Meter X              : 0
Pixels Per Meter Y              : 0
Num Colors                      : Use BitDepth
Num Important Colors            : All
Audio Codec                     : .
Audio Sample Rate               : 22050
Audio Sample Count              : 1995256
Encoding                        : Microsoft PCM
Num Channels                    : 1
Sample Rate                     : 22050
Avg Bytes Per Sec               : 44100
Bits Per Sample                 : 16
Software                        : Lavf57.41.100
Duration                        : 0:01:30
Image Size                      : 1280x720
Megapixels                      : 0.922

1 ответ1

0

Я отправил кросс-пост, потому что не мог перенести свой вопрос в, возможно, более релевантное сообщество. Сожалею. Но вот ответ всем, кому это может понадобиться:

Время creation_time работает для файлов MOV/MP4/MKV.

Для AVI синтаксис

ffmpeg -i old.avi -metadata ICRD="2013-05-02 22:01:04" -c copy new.avi

Обычно, чтобы явно попросить ffmpeg сохранить все метаданные, вы бы добавили -map_metadata 0 но в AVI ffmpeg не реализовал многие теги RIFF, особенно проприетарные, принадлежащие поставщику, поэтому я не знаю, будут ли все скопированы над.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .