mirror of
https://github.com/openvk/openvk
synced 2025-04-24 00:53:00 +03:00
avicons when playing audio, save some values (like volume and last played track) to localstorage, add ability to toggle time type in player, fix uploading audios with cover (maybe) and add dragndrop to upload page
39 lines
No EOL
1.5 KiB
PowerShell
39 lines
No EOL
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 -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 |