Liste a duração de cada arquivo de vídeo em um diretório

Liste a duração de cada arquivo de vídeo em um diretório

Tenho um diretório cheio de arquivos de vídeo .MP4. Gostaria de ver uma lista que contenha o nome de cada arquivo e sua duração em minutos e segundos. Algo assim:

one.mp4    4:34
two.mp4    2:23
three.mp4  8:34
four.mp4   0:43

Eu tentei muitos gerenciadores de arquivos, mas não consigo encontrar um que me mostre essas informações.

Soluções que envolvem o terminal seriam adequadas.

Responder1

Experimente isto: (inspiração desuperusuário.com)

for f in *.mp4
do
  echo -n "$f "
  ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -sexagesimal "$f"
done

No entanto, a saída estará no formato HH:MM:SS.MILLISECONDS. Se você deixar de fora a opção -sexagesimal, obterá a duração em segundos.

Para o formato de saída desejado HH:MM, você poderia fazer algo assim:

for f in *.mp4
do
  echo -n "$f "
  dur=`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"`
  min=`echo "$dur/60" | bc`
  sec=`echo "$dur%60/1" | bc`
  echo "$min:$sec"
done

Responder2

avprobedo pacote libav-toolsfaz isso.

Exemplo de saída avprobe myfile.mp4

avprobe versão 10.1-6:10.1-1~bpo70+1, Copyright (c) 2007-2014 os desenvolvedores do Libav
  construído em 6 de junho de 2014 18:25:37 com gcc 4.7 (Debian 4.7.2-5)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] múltiplas entradas da lista de edição, pode ocorrer dessincronização de A/V, patch bem-vindo
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] múltiplas entradas da lista de edição, pode ocorrer dessincronização de A/V, patch bem-vindo
Entrada #0, mov,mp4,m4a,3gp,3g2,mj2, de 'Zieleinlauf_2013_1886.mp4':
  Metadados:
    marca_maior: isom
    versão_menor: 512
    marcas_compatíveis: isomiso2avc1mp41
    codificador: Lavf54.2.100
  Duração: 00:00:14,09, início: 0,021995, taxa de bits: 4009 kb/s
    Stream #0.0(und): Vídeo: h264 (Alto), yuv420p, 534x300, 3854 kb/s, 25 fps, 25 tbn, 50 tbc (padrão)
    Stream #0.1(und): Áudio: aac, 22050 Hz, mono, fltp, 127 kb/s (padrão)
#saída do avprobe

informação relacionada