Imprimir para lista de arquivo de nomes de arquivos de mídia, tipos e mais importante comprimento

2

Eu estou procurando uma maneira fácil de imprimir em um arquivo as seguintes informações em um diretório cheio de arquivos de vídeo:

Nome do arquivo, tipo de arquivo, duração do vídeo (em segundos)

Eu percebo que os dois primeiros são muito fáceis, é o terceiro bit de informação que estou tendo dificuldade em encontrar uma maneira automatizada de realizar.

enab
fonte

Respostas:

1

Você pode instalar o utilitário de linha de comando exiftool .

Em seguida, abra um arquivo de texto e copie / cole o seguinte script bash:

#!/bin/sh

find "~/Movies/" -name "*" -not -name ".*" -type f | while read file
do
    FILETYPE=$(exiftool  -p "\$FileType" "${file}")
    FPS=$(exiftool  -p "\$FrameRate" "${file}")
    TOTALFRAMES=$(exiftool  -p "\$FrameCount" "${file}")
    DURATION=$[TOTALFRAMES*FPS]
    echo ${file} ${FILETYPE} ${DURATION} > output.txt
done

Substituir ~ / Filmes / com o caminho completo contendo os arquivos de filme e output.txt com o nome do arquivo resultante.

Salve o arquivo na pasta inicial do usuário, como 'meta_generator' ou por qualquer nome que você deseje.

Em seguida, inicie /Utilities/Terminal.app e digite:

chmod +x meta_generator
./meta_generator

Editar : Acabei de ver que você queria o comprimento em segundos, então substituí a tag Duração.

Multiplicando a taxa de quadros e a contagem total de quadros, você obterá os segundos desejados.

Mas você pode encontrar outras maneiras mais fáceis embora :)

nuc
fonte
Você poderia cortar a linha DIR = e substituir "$ {DIR}" por um simples ~ / Movies / se quiser.
Jason Salaz
@vxjasonxv Obrigado pela sua proposta :)
nuc