Remux / encode / converte MPG em MP4

3

Eu entendo que é impossível editar metadados de arquivos MPG (ou seja, criados), então estou procurando outra forma de "atualizar" meus MPGs para um formato de arquivo mais recente (preferidos são formatos que funcionam tanto no Windows quanto no iOS) .

O que devo fazer para atingir esse objetivo? Remux / codificar / converter meus vídeos MPG em MP4 ou MOV e quais configurações devem ser usadas em remuxar / codificar / converter os arquivos? Qual ação produziria o melhor resultado; o mais próximo possível dos vídeos originais do MPG?

Aqui está a especificação mediainfo de um dos meus arquivos 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%) 
    
por zarko 11.01.2015 / 16:05

2 respostas

2

A data de criação (como muitos outros campos de metadados) é uma propriedade que você pode definir para contêineres MP4 / MOV e MKV (bem como vários outros), mas não para fluxos de programa ou fluxos de transporte MPEG. Na verdade, não há um padrão para os metadados de vídeo, como o EXIF para fotos. E quando projetavam contêineres MPEG, eles provavelmente não pensavam sobre esse aplicativo (ainda).

Você tem que estar ciente do fato de que o MPEG-1 é muito antigo - eles começaram a desenvolvê-lo quando eu nasci - e você provavelmente seria melhor converter os vídeos para um mais recente e codec com eficiência de compressão como o H.264. Seu vídeo MPEG-1 de 10 MBit / s provavelmente acabará parecendo tão bom em 1 MBit / s H.264, ou até menos do que isso.

Então, se o problema real é que os vídeos precisam aparecer na ordem correta em um gerenciador de arquivos de algum tipo, e você não pode alterar o gerenciador de arquivos ou usar um plataforma de metadados , você precisa re-muxar ou recodificar os vídeos.

O re-muxing não toca no fluxo de bits de vídeo / áudio, mantendo assim o tamanho e a qualidade do arquivo intactos. Com o ffmpeg , você pode tentar o seguinte:

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

Isso pode funcionar ou não. Não quando eu tentei, mas em teoria, a Matroska suporta vídeo MPEG-1 . O Matroska não é suportado nativamente no Windows ou iOS.

Assim, você pode recodificar o vídeo e o áudio para H.264 / AAC em um contêiner MP4:

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

Aqui, a opção CRF define a qualidade. 18 significa muito bom. 23 é o padrão. Lower significa melhor, por isso, se você quiser manter a qualidade, você pode até querer ir abaixo de 18. Um CRF de ± 6 resulta em cerca de metade / o dobro do tamanho do arquivo. O guia de codificação H.264 é muito útil. Observe que o arquivo resultante pode ser menor do que o arquivo de entrada, mas ainda assim terá a mesma aparência. Isso porque o codec é muito mais eficiente. Eu recomendo que você varie o CRF até encontrar o valor onde você não pode mais perceber uma diferença entre o original e o recodificado.

O H.264 / AAC em MP4 é suportado em (mais recentes) Windows e iOS. As versões mais antigas do Windows (que incluem o Windows 7 IIRC) não serão reproduzidas a menos que um pacote de codecs esteja instalado. Para compatibilidade com iOS em dispositivos mais antigos, você pode definir -profile:v baseline como uma opção.

Após a conversão para MKV ou MP4, a configuração de metadados, como data de criação, será possível.

    
por 11.01.2015 / 18:09
0

Eu usei com sucesso exiftool para isso. Aqui está o metadado de um arquivo MPG antes correção:

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 --

Eu usei isso para alterar todas datas:

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

Aqui está a correção dos metadados após :

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 --

Gostaria de sugerir que você primeiro analise os metadados de arquivos MPG bons e conhecidos e anote qual data é qual. Backup seus arquivos antes de experimentar (exiftool cria um backup por padrão). Nos meus testes, o tamanho dos arquivos originais e atualizados permanece exatamente o mesmo.

    
por 05.09.2015 / 11:29