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

Аватара пользователя
9119

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

Сообщение 9119 »

Добрый.



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





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





Код:

Код: Выделить всё

 Get-MediaInfoSummary "C:\project\Book0001.wav" | Select-String -Pattern 'Duration'

на выходе получим:



Код:

Код: Выделить всё

Duration                                 : 58 s 378 ms
Duration                                 : 58 s 378 ms

причем дважды, т.к так выводит модуль.



Скрытый текст

[spoiler]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%)[/spoiler]






Для использования в переменной



Код:

Код: Выделить всё

 $duration = Get-MediaInfoSummary "C:\project\Book0001.wav" | Select-String -Pattern 'Duration'

мне нужно 5-ти значное число и только в единственном экземпляре.



Т.е. было

Код:

Код: Выделить всё

Duration                                 : 58 s 378 ms
Duration                                 : 58 s 378 ms

а нужно:

первый вариант:



Код:

второй вариант:



Код:



Помогите с кодом пожалуйста.
Аватара пользователя
Iska

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение Iska »

Код:

Код: Выделить всё

$oMatchInfo = Get-MediaInfoSummary "C:\project\Book0001.wav" | Select-String -Pattern '^Duration : (\d+) s (\d+) ms$'
-join $oMatchInfo[0].Matches[0].Groups[1..2].Value
Аватара пользователя
9119

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение 9119 »

Цитата 9119:



Get-MediaInfoSummary
PowerShell - [решено] получить длительность аудио (wav)-файла.




Это какая-то обертка mediainfo?





Код:

Код: Выделить всё

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

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
Iska

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение Iska »

Хм, а не проще ли тогда через проводник запросить длительность файла, нежели плодить обёртки?
Аватара пользователя
Iska

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение Iska »

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

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение greg zakharov »

Хм, а не проще ли тогда через проводник запросить длительность файла, нежели плодить обёртки?
Аватара пользователя
greg zakharov

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение greg zakharov »

greg zakharov, если я правильно понял — его миллисекунды интересуют.
Аватара пользователя
Iska

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение Iska »

Цитата greg zakharov:



Хм, а не проще ли тогда через проводник запросить длительность файла, нежели плодить обёртки?
PowerShell - [решено] получить длительность аудио (wav)-файла.




милисекунды не важны. как и не нужны лишние обертки.

просто не нашел другого способа.



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



в идеале нужно чтобы результат выводился только в секундах.

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

Re: PowerShell - [решено] получить длительность аудио (wav)-файла.

Сообщение Iska »

greg zakharov, возможно. Лень искать, когда не интересно и самому не надо.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»