Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] получить длительность аудио (wav)-файла.

Ответить
Настройки темы
PowerShell - [решено] получить длительность аудио (wav)-файла.

Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Изменения
Автор: 9119
Дата: 08-06-2021
Добрый.

Есть необходимость вывести длительность wav-файла в консоль.


Нашел для себя способ такой:

Код: Выделить весь код
 Get-MediaInfoSummary "C:\project\Book0001.wav" | Select-String -Pattern 'Duration'
на выходе получим:
Код: Выделить весь код
Duration                                 : 58 s 378 ms
Duration                                 : 58 s 378 ms
причем дважды, т.к так выводит модуль.
Скрытый текст
General
Complete name : C:\project\Book0001.wav
Format : Wave
File size : 19.6 MiB
Duration : 58 s 378 ms
Overall bit rate mode : Constant
Overall bit rate : 2 823 kb/s

Audio
Format : PCM
Format profile : Float
Codec ID : 3
Codec ID/Hint : IEEE
Duration : 58 s 378 ms
Bit rate mode : Constant
Bit rate : 2 822 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Bit depth : 32 bits
Stream size : 19.6 MiB (100%)


Для использования в переменной
Код: Выделить весь код
 $duration = Get-MediaInfoSummary "C:\project\Book0001.wav" | Select-String -Pattern 'Duration'
мне нужно 5-ти значное число и только в единственном экземпляре.

Т.е. было
Код: Выделить весь код
Duration                                 : 58 s 378 ms
Duration                                 : 58 s 378 ms
а нужно:
первый вариант:
Код: Выделить весь код
58378
второй вариант:
Код: Выделить весь код
58,378

Помогите с кодом пожалуйста.

Отправлено: 21:39, 08-06-2021

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$oMatchInfo = Get-MediaInfoSummary "C:\project\Book0001.wav" | Select-String -Pattern '^Duration : (\d+) s (\d+) ms$'
-join $oMatchInfo[0].Matches[0].Groups[1..2].Value

Отправлено: 22:20, 08-06-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Цитата 9119:
Get-MediaInfoSummary »
Это какая-то обертка mediainfo?

Код: Выделить весь код
 mediainfo --Output="Audio;%Duration/String3%" file.wav # HH:MM:ss.mmm
 mediainfo --Output="Audio;%Duration%" file.wav # выводит миллисекунды
 
 mediainfo --Info-Parameters # для другого форматирования вывода.

Отправлено: 22:32, 08-06-2021 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
Это какая-то обертка mediainfo? »
Обёртка над обёрткой, над обёрткой: PowerShell Gallery | Get-MediaInfo 3.7GitHub - stax76/MediaInfo.NET: MediaInfo.NET is a Windows application that shows media file information → MediaInfo.dll (MediaInfo).
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:53, 08-06-2021 | #4


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Хм, а не проще ли тогда через проводник запросить длительность файла, нежели плодить обёртки?
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:57, 08-06-2021 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


greg zakharov, если я правильно понял — его миллисекунды интересуют.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:07, 08-06-2021 | #6


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Iska, ежели так, можно и вовсе отказаться от каких-либо библиотек и, приложив к мозгу немного знаний математики, вычислить продолжительность аудио самостоятельно. В противном случае, что-то было в WPF относительно базовых данных по аудио файлам. К слову, можно использовать DirectX.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:53, 08-06-2021 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


greg zakharov, возможно. Лень искать, когда не интересно и самому не надо.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:44, 09-06-2021 | #8


Старожил


Сообщения: 286
Благодарности: 10

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Хм, а не проще ли тогда через проводник запросить длительность файла, нежели плодить обёртки? »
милисекунды не важны. как и не нужны лишние обертки.
просто не нашел другого способа.

как это сделать через проводник?

в идеале нужно чтобы результат выводился только в секундах.
т.е, например аудио - 2м43сек... на выходе должно быть - 163

Последний раз редактировалось 9119, 09-06-2021 в 10:19.


Отправлено: 10:07, 09-06-2021 | #9


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6494
Благодарности: 1466

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$path = 'C:\project\Book0001.wav'

$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)

[TimeSpan]::Parse("$($shellfolder.GetDetailsOf($shellfile, 27);)").totalseconds
https://superuser.com/questions/7045...le-in-a-script
https://stackoverflow.com/questions/...s-fff/21894303

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:44, 09-06-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] получить длительность аудио (wav)-файла.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Посоветуйте программу для накладывания аудио .wav на видео .wmv dr.iw Видео и аудио: обработка и кодирование 2 05-03-2012 00:23
Разное - Утечка ресурсов из-за файла .wav Peutrov Microsoft Windows 7 12 24-12-2011 15:49
[решено] Как получить такие атрибуты видео-файла, как длительность, частота кадров и др? evg64 AutoIt 5 12-12-2009 15:43
Мультимедиа - [addon] LameDropXPd (программа для конвертации wav/mp3/wav) Fraerok Наборы обновлений для Windows XP/2003/Windows 7 7 27-08-2009 20:00
[решено] создание .wav файла с кодированием u-law 32Khz Maxik_BG Видео и аудио: обработка и кодирование 12 21-11-2006 12:31




 
Переход