O Handbrake é uma ferramenta incrível de compactação de vídeo, mas parece não preservar o tempo de captura original após a compactação de um vídeo. Alguma idéia de como consertar isso?
metadata
video-encoding
handbrake
pixelfreak
fonte
fonte
Respostas:
Você pode copiar os metadados existentes de um arquivo para outro sem precisar recodificar o vídeo usando o FFmpeg . Leva basicamente um segundo. Para fazer isso, vamos assumir três arquivos:
in.mp4
- o arquivo original antes da conversãoout.mp4
- o arquivo após a conversão do Handbrakefixed.mp4
- o arquivo com metadados "corrigidos"O comando FFmpeg para copiar o registro completo de metadados para o novo arquivo seria:
Explicação da sintaxe:
Para dividir, faça o seguinte:
in.mp4
eout.mp4
), aos quais são atribuídos os IDs 0 e 1, respectivamente.-map 1
), para obtermos os fluxos de bits já convertidos-map_metadata 0
)-c copy
) para copiar todos os fluxos de bits em vez de recodificar o vídeo.Depois disso, você poderia obviamente renomear
fixed.mp4
paraout.mp4
.Prova:
Como exemplo, aqui está parte do registro de metadados do meu arquivo original:
Aqui está o arquivo após a conversão do Handbrake:
Aqui está o arquivo final após o mapeamento dos metadados:
Se você quiser fazer tudo com o FFmpeg:
Na verdade, você realmente não precisa usar o Handbrake se você pode usar o FFmpeg, no qual o Handbrake se baseia. No caso mais simples, você pode fazer sua conversão assim:
Isso converterá a entrada com o codificador x264 e o áudio AAC em um arquivo de saída, copiando os metadados originais. Para alterar a qualidade da saída, você pode:
Leia o guia de codificação x264 no wiki do FFmpeg para obter mais informações.
fonte
Unknown encoder 'libfaac'
erro-c:a aac -strict experimental
vez disso.Infelizmente, parece que o handbrake não pode fazer isso sozinho, mas, da mesma forma que no exemplo ffmpeg, os carimbos de data e hora podem ser copiados do original após a compactação usando o
touch
comando unix:isso definirá o carimbo de data e hora no arquivo compactado para o mesmo que o arquivo de referência fornecido.
fonte
Encontrei uma maneira mais fácil de fazer isso, usando um software diferente chamado
Adapter
: http://www.macroplant.com/adapter/Ele não possui todas as configurações avançadas, como o HandBrake, mas faz o trabalho (também usando o ffmpeg) e mantém os metadados de que eu preciso.
fonte
Estou usando o macOS Yosemite e o HandBrakeBatch - use-o para converter arquivos, mas clique na caixa "manter datas de criação e modificação de arquivos" no menu "Preferências".
Em seguida, importo os vídeos para o Lightroom 5, mas eles ainda não mantêm as datas de criação. Mas, o mais importante, os arquivos são mostrados no Finder com a data de criação correta. Por isso, selecionei todos eles na biblioteca do Lightroom → Metadados (coluna da caixa de diálogo direita) → Tempo de captura → Alterar para a data de criação do arquivo → Alterar tudo.
Eu tinha 850 vídeos antigos de família - tive que fazer esse processo em lotes de 100. O travão de mão trava com muitos arquivos.
fonte
Criei um script bash que pode transferir em lote os metadados,
touch
conforme sugerido acima. Para que funcione, você deve ter seus arquivos originais e convertidos em diretórios separados, cada um com o mesmo número de arquivos (os diretórios devem ter apenas os arquivos de vídeo, pois outros arquivos / diretórios interferirão) e na mesma ordem. Depois, apenas copia os metadados e está tudo pronto. O script lista todos os pares de arquivos para que você possa verificar se há erros no final, se desejar.O código pode não ser o mais legal, pois foi meu primeiro script bash adequado, mas tem sido bastante rápido e estável para mim, então aqui vai:
Para executar, faça:
sudo bash script.sh /sourcedir /converteddir
fonte
Se você quer dizer o tempo de modificação no nível do arquivo, tive o mesmo problema e consegui recuperá-lo com o exiftool .
Isso pega os metadados e
FileModifyDate
deinput.mp4
e os copia paraoutput.mp4
.Para automatizar isso porque eu tinha um grande número de arquivos para transcodificar, criei uma ferramenta chamada Shrinkwrap que primeiro transcodifica com o FFmpeg (eu me afastei do HandBrake por precisar preservar mais metadados) e recuperei o carimbo de data / hora da modificação com o exiftool.
fonte
Após muita pesquisa, desisti principalmente de usar arquivos de vídeo antigos com a data correta criada / modificada para substituir a data criada / modificada dos meus novos arquivos de vídeo compactados pelo Handbrake. Como a maioria dos meus vídeos tem data / hora no nome do arquivo, experimentei e consegui dois métodos para trabalhar. O primeiro e o melhor é usar o método de carimbo de data e hora do Advanced Renamer, que PODE alterar a data do arquivo modificado, criado e acessado, não apenas o nome do arquivo. https://www.advancedrenamer.com/download .
Também encontrei um script do powershell https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ que poderia ser adaptado por um programador para outros formatos de nome de arquivo / data. No estado atual, ele funciona apenas se o nome do arquivo estiver estruturado exatamente como no exemplo.
Felizmente, meu número de vídeos sem a data de modificação no nome do arquivo é baixo o suficiente. Eu posso alterá-los manualmente, não demorará muito.
Tentei usar o ffmpeg, mas seu comando map_metadata altera apenas os dados dentro do arquivo, não a data da modificação, criada pelo próprio arquivo. Esse tipo de metadado interno Handbrake já funciona bem de qualquer maneira.
fonte
O programa MyFFmpeg faz isso muito bem. Em suas opções, há uma opção para Manter a criação original / data de modificação do arquivo de origem .
Eu estava procurando isso porque tenho meus vídeos caseiros em um servidor Plex e os arquivos são organizados pela data de criação, o que é muito útil se você quiser ver coisas de um ano específico.
Infelizmente, essa não é uma opção gratuita, atualmente custa 20 euros ou cerca de 21 US. Eles têm uma avaliação para 10 usos antes que você precise comprar uma licença. Surpreendido, algumas das GUIs gratuitas do ffmpeg não possuem ou adicionam essa opção.
fonte
Tento manter a data de criação enquanto comprimo meus vídeos GoPro MP4 incrivelmente grandes no H.264.
Encontrei o programa HandBrakeBatch . É exatamente o que eu preciso para compactar mais de 1000 arquivos de uma só vez, mantendo a data de criação (metadados).
Não encontrou nenhum outro programa capaz de fazer isso. Tentei com FFmpeg, HandBrake e Wonderful Video Converter, mas não.
fonte