3

Я понимаю, что невозможно редактировать метаданные файлов MPG (т. Е. Созданный), поэтому я ищу другой способ "обновить" мои MPG до более нового формата файлов (предпочтительными являются форматы, которые работают как в Windows, так и в iOS).

Что я должен сделать, чтобы достичь этой цели? Remux/ кодировать / конвертировать мои MPG-видео в MP4 или MOV и какие настройки следует использовать при ремуксинге / кодировании / конвертации файлов? Какое действие дало бы лучший результат; как можно ближе к оригинальным видео MPG?

Вот спецификация mediainfo одного из моих файлов MPG:

General
Complete name : E:\Users\Owner\Desktop\test\MOV03521.MPG
Format : MPEG-PS
File size : 25.1 MiB
Duration : 20s 124ms
Overall bit rate mode : Variable
Overall bit rate : 10.5 Mbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 1
Format settings, BVOP : No
Format settings, Matrix : Default
Format settings, GOP : N=1
Duration : 20s 100ms
Bit rate mode : Variable
Bit rate : 10.2 Mbps
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate : 30.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 1.105
Time code of first frame : 00:00:00:00
Time code source : Group of pictures header
GOP, Open/Closed : Closed
Stream size : 24.4 MiB (97%)

Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Duration : 20s 124ms
Bit rate mode : Constant
Bit rate : 64.0 Kbps
Channel(s) : 1 channel
Sampling rate : 32.0 KHz
Compression mode : Lossy
Stream size : 157 KiB (1%) 

2 ответа2

2

Дата создания (как и многие другие поля метаданных) - это свойство, которое вы можете установить для контейнеров MP4/MOV и MKV (а также некоторых других), но не для программных потоков MPEG или транспортных потоков. На самом деле, не существует стандарта для метаданных видео, как есть EXIF для фотографий. И когда они разрабатывали контейнеры MPEG, они, вероятно, просто не думали об этом приложении (пока).

Вы должны знать о том, что MPEG-1 очень старый - они начали его разрабатывать, когда я родился - и вам, вероятно, будет лучше преобразовать видео в более свежий и эффективный кодек сжатия, такой как H.264. Ваше видео MPEG-1 со скоростью 10 Мбит / с, вероятно, будет выглядеть так же хорошо, как 1 Мбит / с H.264, или даже меньше.

Таким образом, если реальная проблема заключается в том, что видео должны отображаться в правильном порядке в каком-либо файловом менеджере, и вы не можете изменить файловый менеджер или использовать платформу метаданных, вам необходимо повторно мультикодировать или перекодировать видео ,

Повторное мультиплексирование не затронет битовый поток видео / аудио, таким образом сохраняя размер и качество файла без изменений. С ffmpeg вы можете попробовать следующее:

ffmpeg -i input.mpeg -c copy output.mkv

Это может работать или не может. Когда я попробовал, этого не произошло, но теоретически Matroska поддерживает видео в формате MPEG-1. Matroska изначально не поддерживается в Windows или iOS.

Таким образом, вы можете перекодировать видео и аудио в H.264/AAC в контейнере MP4:

ffmpeg -i input.mpeg -c:v libx264 -preset slow -crf 18 -c:a aac -strict experimental -b:a 128k output.mp4

Здесь опция CRF устанавливает качество. 18 означает очень хорошо. 23 по умолчанию. Чем ниже, тем лучше, поэтому, если вы хотите сохранить качество, вы можете даже пойти ниже 18. CRF, равный ± 6, дает примерно половину / удвоенный размер файла. Руководство по кодированию H.264 очень полезно. Обратите внимание, что ваш результирующий файл может быть меньше входного файла, но все равно будет выглядеть так же хорошо. Это потому, что кодек гораздо эффективнее. Я рекомендую вам изменять CRF до тех пор, пока не найдете значение, при котором вы больше не сможете воспринимать разницу между оригиналом и перекодированным.

H.264/AAC в MP4 поддерживается на (более новых) Windows и iOS. Старые версии Windows (включая Windows 7 IIRC) не будут воспроизводиться, если не установлен пакет кодеков. Для совместимости с iOS на старых устройствах вам может потребоваться установить -profile:v baseline в качестве опции.

После преобразования в MKV или MP4 можно будет установить метаданные, например дату создания.

0

Я успешно использовал exiftool для этого. Вот метаданные файла MPG до исправления:

C:\>exiftool.exe -s test.mp4

ExifToolVersion                 : 10.01
FileName                        : test.mp4
Directory                       : .
FileSize                        : 14 MB
FileModifyDate                  : 2015:09:04 22:33:16+05:00
FileAccessDate                  : 2015:09:05 14:10:08+05:00
FileCreateDate                  : 2015:09:05 14:10:08+05:00
FilePermissions                 : rw-rw-rw-
FileType                        : MP4
FileTypeExtension               : mp4
MIMEType                        : video/mp4
MajorBrand                      : MP4  Base Media v1 [IS0 14496-12:2003]
MinorVersion                    : 0.2.0
CompatibleBrands                : isom, iso2, avc1, mp41
MovieHeaderVersion              : 0
CreateDate                      : 0000:00:00 00:00:00
ModifyDate                      : 0000:00:00 00:00:00
TimeScale                       : 1000
Duration                        : 0:01:22
-- snip --
TrackHeaderVersion              : 0
TrackCreateDate                 : 0000:00:00 00:00:00
TrackModifyDate                 : 0000:00:00 00:00:00
-- snip --
MediaHeaderVersion              : 0
MediaCreateDate                 : 0000:00:00 00:00:00
MediaModifyDate                 : 0000:00:00 00:00:00
-- snip --

Я использовал это, чтобы изменить все даты:

C:\>exiftool.exe ^
-Quicktime:CreateDate="2007-01-02 03:04:05" ^
-Quicktime:ModifyDate="2007-01-02 03:04:05" ^
     -TrackCreateDate="2007-01-02 03:04:05" ^
     -TrackModifyDate="2007-01-02 03:04:05" ^
     -MediaCreateDate="2007-01-02 03:04:05" ^
     -MediaModifyDate="2007-01-02 03:04:05" ^
test.mp4

Вот метаданные после исправления:

FileModifyDate                  : 2015:09:05 14:20:54+05:00
FileAccessDate                  : 2015:09:05 14:20:54+05:00
FileCreateDate                  : 2015:09:05 14:10:08+05:00
-- snip --
CreateDate                      : 2007:01:02 03:04:05
ModifyDate                      : 2007:01:02 03:04:05
-- snip --
TrackCreateDate                 : 2007:01:02 03:04:05
TrackModifyDate                 : 2007:01:02 03:04:05
-- snip --
MediaCreateDate                 : 2007:01:02 03:04:05
MediaModifyDate                 : 2007:01:02 03:04:05
-- snip --

Я бы посоветовал вам сначала взглянуть на метаданные хороших, известных файлов MPG и записать, какая дата является какой. Сделайте резервную копию ваших файлов перед экспериментом (exiftool создает резервную копию по умолчанию). В моем тестировании размер оригинальных и обновленных файлов остается одинаковым.

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