Получение времени воспроизведения аудио из папки из командной строки

У этой проблемы может быть много причин:

  • NAT (спросите своего сетевого администратора, есть ли исключение NAT для вашего IP-адреса в брандмауэрах)
  • ACL: попросите своего сетевого администратора проверить списки доступа, чтобы убедиться, что трафик на ваш внутренний хост разрешен.
  • Фильтрация сервисов (снова попросите вашего сетевого администратора проверить, разрешил ли он/она необходимые вам сервисы (icmp для ping, tcp/80 для http, tcp/443 для https и т.д.)
  • Системный брандмауэр: полностью отключите ваш брандмауэр.

Для дальнейшей диагностики попробуйте просканировать ваш хост из внутренней и внешней сети с помощью nmap, это может помочь при сравнении результатов...

Думаю, это покрывает 99% проблем, с которыми я сталкивался.

0
17.08.2019, 03:06
1 ответ

Я нашел простой способ, используя инструмент mp3infoс awk.

К сожалению, это работает только для файлов mp3.

mp3info -p "%m:%s\n" directory/*.mp3 |
awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}'

или как крошечный сценарий bash -

#!/bin/bash

dir="$1"

mp3info -p "%m:%s\n" "$dir/*.mp3" |
awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}'

спасибо @steve за строкуawk-


Обновление:

sndfile-infoили soxмогут получить время воспроизведения для различных форматов файлов, таких как flacили wav:

.
sndfile-info audio.flac | awk '/^Duration/ { print $3 }'

или решение sox:

sox -V3 audio.flac -n |& awk '/^Duration/ { print $3;exit }'

(exitв команде awkограничивает вывод только первым соответствием)

0
28.01.2020, 04:12

Теги

Похожие вопросы