Lista de arquivos de mídia com sua duração

2

Eu queria obter uma lista de arquivos mp4 e sua duração correspondente de todas as pastas correspondentes ao padrão abaixo

por exemplo: LO1 / LO1.MP4, LO3 / LO3.MP4

Eu tentei seguir, mas recebi várias entradas, assim como não consigo descobrir o nome do arquivo:


$ mediainfo /var/www/videos/L*/L*.mp4 | grep Duration
Duration                                 : 25mn 54s
Duration                                 : 25mn 54s
Material_Duration                        : 1554665
Duration                                 : 25mn 54s
Material_Duration                        : 1554688
Duration                                 : 37mn 21s
Duration                                 : 37mn 21s
Material_Duration                        : 2241664
Duration                                 : 37mn 21s
Material_Duration                        : 2241696
Duration                                 : 26mn 6s
Duration                                 : 26mn 6s
Duration                                 : 26mn 6s
Duration                                 : 30mn 41s
Duration                                 : 30mn 41s
Duration                                 : 30mn 41s
Duration                                 : 39mn 41s
Duration                                 : 39mn 41s
Duration                                 : 39mn 41s
Duration_LastFrame                       : -7ms
Duration                                 : 37mn 2s
Duration                                 : 37mn 2s
Duration                                 : 37mn 2s
Duration_LastFrame                       : -12ms
Duration                                 : 34mn 24s
Duration                                 : 34mn 24s
Duration                                 : 34mn 24s
Duration                                 : 31mn 7s
Duration                                 : 31mn 7s
Duration                                 : 31mn 7s
Duration                                 : 31mn 57s
Duration                                 : 31mn 57s
Duration                                 : 31mn 57s
Duration                                 : 29mn 30s
Duration                                 : 29mn 30s
Duration                                 : 29mn 30s
Duration                                 : 36mn 28s
Duration                                 : 36mn 28s
Duration                                 : 36mn 27s
Material_Duration                        : 2187988

Então, como posso obter uma lista de nomes de arquivos (.mp4) e sua duração correspondente?

    
por suuser 15.10.2013 / 13:01

1 resposta

5

Eu não sei a saída do mediainfo, mas é assim que eu faço usando ffrobe (ou ffmpeg -i), isso terá a duração

ffprobe $fn 2>&1|grep Duration|sed -e 's/^[ \t]*//'|cut -d" " -f2|cut -d. -f1

usando find irá obter os nomes dos arquivos para você

find /var/www/videos/L* -type f -name L\*.mp4

para que você possa juntar tudo em um pequeno loop para obter sua lista

for fn in 'find /var/www/videos/L* -type f -name L\*.mp4';
do
    dur='ffprobe $fn 2>&1|grep Duration|sed -e 's/^[ \t]*//'|cut -d" " -f2|cut -d. -f1'
    echo "$fn $dur"
done
    
por 15.10.2013 / 13:17