Tempo de video via ShellScript [RESOLVIDO]

1. Tempo de video via ShellScript [RESOLVIDO]

Julio Cesar Gonzales
juliogonzales

(usa Ubuntu)

Enviado em 04/02/2014 - 22:42h

Boa noite, estou precisando saber como eu consigo fazer para pegar o tempo de um vídeo via Shell script, tenho vários videos e preciso saber quanto tempo tem cada um e depois soma-lo, não posso passar de uma hora de videos.

Obrigado


  


2. MELHOR RESPOSTA

Fernando
phoemur

(usa Debian)

Enviado em 05/02/2014 - 00:04h

O comando com find já sai em horas, porém em formato decimal, ex.: 4.33 horas

Agora se você quiser em formato bonitinho, tipo HH:MM:SS teria que colocar mais um pipe pro comando date, o comando seria assim:

find . -type f -maxdepth 1 -print0 | xargs -0 -i mplayer -vo null -ao null -frames 0 -identify {} 2>/dev/null | awk -F'=' '/ID_LENGTH/ {soma+=$2}END{print soma}' | xargs -i date -u -d @{} +"%T"


Esse comando imprime a soma da duração dos vídeos do diretório atual...

3. Re: Tempo de video via ShellScript [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 04/02/2014 - 23:27h

Usando mplayer, resultado em segundos:

mplayer -vo null -ao null -frames 0 -identify "/home/nomedoarquivo.mp4" 2>/dev/null | grep ID_LENGTH | cut -d'=' -f2

*"/home/nomedoarquivo.mp4" é o arquivo a ser analisado

Usando ffmpeg, resultado em segundos:

ffprobe -show_format "/home/nomedoarquivo.mp4" 2>/dev/null | grep duration | cut -d'=' -f2

*"/home/nomedoarquivo.mp4" é o arquivo a ser analisado



Agora utilizando mplayer, verificando a duração em HORAS de todos os vídeos do diretório atual:

find . -type f -maxdepth 1 -print0 | xargs -0 -i mplayer -vo null -ao null -frames 0 -identify {} 2>/dev/null | awk -F'=' '/ID_LENGTH/ {soma+=$2}END{print soma/3600}'



4. Re: Tempo de video via ShellScript [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 04/02/2014 - 23:30h

Para ver a duração do video instlae o ffmpeg caso ainda não tenha e use :

ffmpeg -i video.avi


Se quiser filtrar pra facilitar:

ffmpeg -i video.avi 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,//


Pode ainda jogar a saida para um txt para somar depois:


ffmpeg -i video.avi 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// >> /home/seuuser/duration.txt


Ou ainda criar um script para fazer todos de vez:

for x in `ls *.avi`; do
ffmpeg -i $x 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// >> /home/andre/Downloads/duration.txt
done


Crie um arquivo.sh dentro do diretorio dos videos e de permissão de excutar usando:

chmod +x arquivo.sh

depois execute ele:

sh arquivo.sh


A soma fica por sua conta rsrs


5. Re: Tempo de video via ShellScript [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 04/02/2014 - 23:30h

phoemur escreveu:

Usando mplayer, resultado em segundos:

mplayer -vo null -ao null -frames 0 -identify "/home/nomedoarquivo.mp4" 2>/dev/null | grep ID_LENGTH | cut -d'=' -f2

*"/home/nomedoarquivo.mp4" é o arquivo a ser analisado

Usando ffmpeg, resultado em segundos:

ffprobe -show_format "/home/nomedoarquivo.mp4" 2>/dev/null | grep duration | cut -d'=' -f2

*"/home/nomedoarquivo.mp4" é o arquivo a ser analisado



Agora utilizando mplayer, verificando a duração em HORAS de todos os vídeos do diretório atual:

find . -type f -maxdepth 1 -print0 | xargs -0 -i mplayer -vo null -ao null -frames 0 -identify {} 2>/dev/null | awk -F'=' '/ID_LENGTH/ {soma+=$2}END{print soma/3600}'


TIREI O CHAPÉU!


6. Re: Tempo de video via ShellScript [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 04/02/2014 - 23:32h

andrecanhadas escreveu:

Para ver a duração do video instlae o ffmpeg caso ainda não tenha e use :

ffmpeg -i video.avi


Se quiser filtrar pra facilitar:

ffmpeg -i video.avi 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,//


Pode ainda jogar a saida para um txt para somar depois:


ffmpeg -i video.avi 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// >> /home/seuuser/duration.txt


Ou ainda criar um script para fazer todos de vez:

for x in `ls *.avi`; do
ffmpeg -i $x 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// >> /home/andre/Downloads/duration.txt
done


Crie um arquivo.sh dentro do diretorio dos videos e de permissão de excutar usando:

chmod +x arquivo.sh

depois execute ele:

sh arquivo.sh


A soma fica por sua conta rsrs


Não sabia que poderia ser usado estes macetes, show de bola!


7. Re: Tempo de video via ShellScript [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 04/02/2014 - 23:35h

phoemur escreveu:

Usando mplayer, resultado em segundos:

mplayer -vo null -ao null -frames 0 -identify "/home/nomedoarquivo.mp4" 2>/dev/null | grep ID_LENGTH | cut -d'=' -f2

*"/home/nomedoarquivo.mp4" é o arquivo a ser analisado

Usando ffmpeg, resultado em segundos:

ffprobe -show_format "/home/nomedoarquivo.mp4" 2>/dev/null | grep duration | cut -d'=' -f2

*"/home/nomedoarquivo.mp4" é o arquivo a ser analisado



Agora utilizando mplayer, verificando a duração em HORAS de todos os vídeos do diretório atual:

find . -type f -maxdepth 1 -print0 | xargs -0 -i mplayer -vo null -ao null -frames 0 -identify {} 2>/dev/null | awk -F'=' '/ID_LENGTH/ {soma+=$2}END{print soma/3600}'


é disputar shell com o phoemur nem dá vou perder feio rsrs a do find fechou o topico


8. Re: Tempo de video via ShellScript [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 04/02/2014 - 23:41h

O legal é que todos os comandos funcionam... Isso que eu acho legal do shell, tem diversas maneiras de chegar ao resultado desejado, umas mais complicadas, outras mais simples, umas mais elegantes, outras mais "gambiarras"...
Dá pra usar a imaginação...


9. Re: Tempo de video via ShellScript [RESOLVIDO]

Julio Cesar Gonzales
juliogonzales

(usa Ubuntu)

Enviado em 04/02/2014 - 23:42h

Galera, ja esta quase certo... ja muito obrigado pela ajuda de vocês, mas não querendo muito, o resultado sai em segundo né?!
tem como ja sai formatado, ou como ou formato?

obrigado novamente


10. Re: Tempo de video via ShellScript [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 05/02/2014 - 00:09h

phoemur escreveu:

O legal é que todos os comandos funcionam... Isso que eu acho legal do shell, tem diversas maneiras de chegar ao resultado desejado, umas mais complicadas, outras mais simples, umas mais elegantes, outras mais "gambiarras"...
Dá pra usar a imaginação...


Em matéria gambiarra tirei 10 rrsrs


11. Re: Tempo de video via ShellScript [RESOLVIDO]

Julio Cesar Gonzales
juliogonzales

(usa Ubuntu)

Enviado em 05/02/2014 - 00:14h

puts..... esta ficando louco, se é gambiarra ou não, parabéns pelo conhecimento de vocês...
Agora não fiquem com raiva, é a ultima pergunta para fechar o tópico, kkkk
Tem como listar cada video e o tempo do lado?
vix, vão me matar!
senão, obrigado da mesma forma, nunca conseguiria sem a a juda de vocês !

abç





12. Re: Tempo de video via ShellScript [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 05/02/2014 - 00:26h

juliogonzales escreveu:

puts..... esta ficando louco, se é gambiarra ou não, parabéns pelo conhecimento de vocês...
Agora não fiquem com raiva, é a ultima pergunta para fechar o tópico, kkkk
Tem como listar cada video e o tempo do lado?
vix, vão me matar!
senão, obrigado da mesma forma, nunca conseguiria sem a a juda de vocês !

abç




Bom vou postar referente a minha anterior:

[code]
for x in `ls *.avi`; do
ffmpeg -i $x 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | xargs echo $x >> duration.txt
done

para ver o resultado use # cat duration.txt



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts