Listar nome de arquivo de vídeo e duração de vários arquivos em pastas e subpastas com caminho também, se possível

2

Eu preciso obter uma lista de nomes de arquivos e caminho junto com a duração do arquivo. Todos são arquivos de vídeo. Alguns arquivos também estão em subpastas. Eu preciso da lista ordenada de acordo com a duração. Meu objetivo é excluir os arquivos com duração inferior a 2 minutos. Existe alguma maneira eu posso fazê-lo através de terminal ou GUI?

    
por user1892911 12.02.2014 / 09:20

2 respostas

1

Você está sem sorte sem usar programas externos, file videoname.xyz não retorna a duração dos vídeos. Por outro lado, avprobe (ffprobe) do pacote libav-tools faz!

Você precisaria executar uma caminhada de diretórios recursivos (por exemplo, em Python), chamar avprobe (por meio de um subprocesso), analisar a duração da saída e armazenar tamanho e nome de arquivo em uma estrutura adequada.

    
por Klaus-Dieter Warzecha 12.02.2014 / 10:05
1

isto deve fornecer uma lista de mp4s com menos de 120 segundos na pasta especificada, incluindo subpastas

find ~/pathtofolder -iname '*.mp4' -type f > vidfiles && while read f; do echo -n "$f: "; ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"; done < vidfiles | awk '$NF<120' > shortvids

Basta alterar o ~/pathtofolder para seu local de destino.

A lista estará em um arquivo chamado shortvids

Peço desculpas por não classificar, mas não vejo a necessidade de os únicos arquivos na lista serem os vídeos curtos.

Se você gostaria de alterar a duração, perto da mudança final '$NF<120' para o número de segundos. Por exemplo, '$NF<300' significaria " duração menor que 5 minutos (ou 300 segundos) "

é claro que você também pode encontrar durações maiores que ou iguais a mudando o sinal ou seja. < a > ou =

    
por SCBB 07.03.2017 / 20:54