mirror of
https://github.com/openvk/openvk
synced 2024-12-23 17:12:01 +03:00
39 lines
1.5 KiB
PowerShell
39 lines
1.5 KiB
PowerShell
$ovkRoot = $args[0]
|
|
$storageDir = $args[1]
|
|
$fileHash = $args[2]
|
|
$hashPart = $fileHash.substring(0, 2)
|
|
$filename = $args[3]
|
|
$audioFile = [System.IO.Path]::GetTempFileName()
|
|
$temp = [System.IO.Path]::GetTempFileName()
|
|
|
|
$keyID = $args[4]
|
|
$key = $args[5]
|
|
$token = $args[6]
|
|
$seg = $args[7]
|
|
|
|
$shell = Get-WmiObject Win32_process -filter "ProcessId = $PID"
|
|
$shell.SetPriority(16384) # because there's no "nice" program in Windows we just set a lower priority for entire tree
|
|
|
|
Remove-Item $temp
|
|
Remove-Item $audioFile
|
|
New-Item -ItemType "directory" $temp
|
|
New-Item -ItemType "directory" ("$temp/$fileHash" + '_fragments')
|
|
New-Item -ItemType "directory" ("$storageDir/$hashPart/$fileHash" + '_fragments')
|
|
Set-Location -Path $temp
|
|
|
|
Move-Item $filename $audioFile
|
|
ffmpeg -i $audioFile -f dash -encryption_scheme cenc-aes-ctr -encryption_key $key `
|
|
-encryption_kid $keyID -map 0:a -vn -c:a aac -ar 44100 -seg_duration $seg `
|
|
-use_timeline 1 -use_template 1 -init_seg_name ($fileHash + '_fragments/0_0.$ext$') `
|
|
-media_seg_name ($fileHash + '_fragments/chunk$Number%06d$_$RepresentationID$.$ext$') -adaptation_sets 'id=0,streams=a' `
|
|
"$fileHash.mpd"
|
|
|
|
ffmpeg -i $audioFile -vn -ar 44100 "original_$token.mp3"
|
|
Move-Item "original_$token.mp3" ($fileHash + '_fragments')
|
|
|
|
Get-ChildItem -Path ($fileHash + '_fragments/*') | Move-Item -Destination ("$storageDir/$hashPart/$fileHash" + '_fragments')
|
|
Move-Item -Path ("$fileHash.mpd") -Destination "$storageDir/$hashPart"
|
|
|
|
cd ..
|
|
Remove-Item -Recurse $temp
|
|
Remove-Item $audioFile
|