ffprobe -i some_video -show_entries format=duration -v quiet -of csv="p=0"
vrátí délku videa v sekundách.
Něco podobného jako:
ffmpeg -i input 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,//
Tím se zobrazí:HH:MM:SS.ms
. Můžete také použít ffprobe
, který je dodáván s většinou instalací FFmpeg:
ffprobe -show_format input | sed -n '/duration/s/.*=//p'
… nebo:
ffprobe -show_format input | grep duration | sed 's/.*=//')
Chcete-li převést na sekundy (a zachovat milisekundy), převeďte potrubí do:
awk '{ split($1, A, ":"); print 3600*A[1] + 60*A[2] + A[3] }'
Chcete-li jej převést na milisekundy, použijte kanál do:
awk '{ split($1, A, ":"); print 3600000*A[1] + 60000*A[2] + 1000*A[3] }'
Pokud chcete pouze sekundy bez milisekund, přejděte do:
awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'
Příklad:
Jak změnit kurzor terminálu z pole na řádek?
Jaký je nejrychlejší způsob spojení dvou nebo více souborů v Linuxu?