turkish777
@turkish777
junior frontend

Как вывести длительность аудио/видеофайла?

Добрый день. Есть задача - написать скрипт, перебирающий все файлы в директории и выводящий длительность название, размер и длительность, если это аудио или видеофайл.

Есть все, кроме длительности))

local file1=$1;

  for file in $file1/*
  do
  if [ -f "$file" ]
  then
  for (( i=1; i <= $count; i++ ))
  do
  printf "║ "
  done
  local filesize=$(stat -c%s "$file")
  filesize=$(echo "scale=4; $filesize / 1024 / 1024" | bc)
  local dateModify=$(date +"%d.%m.%Y в %H:%M" --reference="$file")
  local time=$(ffmpeg -t -i $file)
  
  printf "╠═ ${file##*/}, ${filesize} MB, изменено ${dateModify}, \t${time}\n"
  
  fi
  done


Переменная time должна хранить длину медиафайла. Использую библиотеку ffmpeg и явно делаю что-то не так с опциями.
Заранее спасибо за помощь:)
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
ffprobe для этого удобнее. В одном проекте так определяю длительность в bash-скрипте в переменную:
local MUSIC_LENGTH=$(ffprobe \
		-v quiet  \
		-print_format ini  \
		-show_format  \
		"$MUSIC_PCM" | grep duration | sed s/duration=//)


$MUSIC_PCM – путь к медиафайлу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы