Por que minha saída ffmpeg é menor que minha entrada depois de editar apenas os metadados?


1

Estou usando o ffmpeg para editar os metadados mp4 creation_time, usando o comando:

ffmpeg -i input.mp4 -metadata creation_time="YYYY-MM-DD HH:MM:SS" -codec copy output.mp4

A data de criação foi alterada com êxito, mas os arquivos de saída são drasticamente menores que a entrada (2,2 MB é reduzido para 1,4 MB). Alguém pode me explicar por que isso acontece e se é algo que eu deveria me preocupar? Não quero perder a qualidade do vídeo, tudo o que quero fazer é editar os metadados creation_time.

Obrigado!


Se todos os fluxos ainda estiverem presentes, você não perderá nenhuma qualidade. Para ter certeza sobre isso, eu seria um pouco mais explícito:ffmpeg -i input.mp4 -map 0 -c copy -metadata creation_time="YYYY-MM-DD HH:MM:SS" output.mp4
flolilo

Eu tentei testar as duas sintaxes de comando em um arquivo .mp4; ambos resultaram em saídas idênticas, alguns bytes maiores em tamanho que o original, mas idênticos um ao outro.
Nevin Williams

Uma indicação de que uma possível recodificação com perda está ocorrendo é o tempo de execução. Uma cópia direta é rápida; uma recodificação leva tempo. Além disso, você pode comparar a saída ffmpeg -i input.mp4e ffmpeg -i output.mp4comparar as informações de cada arquivo. Talvez houvesse alguns dados estranhos no original que foram cortados no arquivo modificado.
Nevin Williams

@flolilolilo Obrigado, atualizei meu script com suas sugestões. I
mux

1
A cópia parece bem. Observe que as taxas de bits dos fluxos de entrada são 7497 e 123 kbps; portanto, a saída mantém os fluxos de mídia intactos. Eu suspeito que haja alguma carga dentro da caixa MOOV, provavelmente no UDTA que o ffmpeg ignorará ao criar um novo MP4.
Gyan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.