Speedup File check using 'HEVC' filename checking and other improvements
This commit is contained in:
parent
a39cf40aa2
commit
951f072b26
@ -38,3 +38,8 @@ If not, the failed conversion file is deleted and logged.
|
|||||||
3. Extract the files to "video-in-place-hevc-converter\encoder\" and replace the old files.
|
3. Extract the files to "video-in-place-hevc-converter\encoder\" and replace the old files.
|
||||||
4. Edit the $videoPath variable in the PowerShell file to point to the folder of your "video files" to convert. (**ATTENTION: The ending-slash must be preserved in the path specification!**)
|
4. Edit the $videoPath variable in the PowerShell file to point to the folder of your "video files" to convert. (**ATTENTION: The ending-slash must be preserved in the path specification!**)
|
||||||
5. Execute **convert_Videos.ps1** to convert the video files under the specified path to HEVC.
|
5. Execute **convert_Videos.ps1** to convert the video files under the specified path to HEVC.
|
||||||
|
|
||||||
|
|
||||||
|
## Extra Content (_extras folder)
|
||||||
|
|
||||||
|
* **manually_review_videos.ps1** - Redoes the review process using the "review_needed.log" -> before useing set the "$logFolderName" variable in file.
|
68
_extras/manually_review_videos.ps1
Normal file
68
_extras/manually_review_videos.ps1
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Review converted videos:
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
# Edit the $logFolderName variable to point to your desired logs folder:
|
||||||
|
|
||||||
|
#$logFolderName = "24-06-2020 - [run started at 17-31]"
|
||||||
|
$logFolderName = "30-06-2020 - [run started at 11-20]"
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
$reviewPlayer = "C:\Program Files\VideoLAN\VLC\vlc.exe"
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################################################################
|
||||||
|
# Evaluation part of the conversion script #
|
||||||
|
#############################################################################################################
|
||||||
|
if(!(Test-Path $reviewPlayer -PathType leaf))
|
||||||
|
{
|
||||||
|
Write-Host "vlc.exe not found, is the player installed? please check path in `"$reviewPlayer`"." -ForegroundColor Yellow
|
||||||
|
Read-Host -Prompt "Press Enter to exit"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
$reviewFiles = Get-content -LiteralPath "$PSScriptRoot\..\logs\$logFolderName\review_needed.log" | Measure-Object –Line
|
||||||
|
$ReviewCount = $reviewFiles.Lines
|
||||||
|
|
||||||
|
Write-Host "There are $ReviewCount files to review.." -ForegroundColor Yellow
|
||||||
|
Write-Host
|
||||||
|
|
||||||
|
$review_count = 1
|
||||||
|
|
||||||
|
foreach($review_pair in Get-Content -LiteralPath "$PSScriptRoot\..\logs\$logFolderName\review_needed.log")
|
||||||
|
{
|
||||||
|
$oldFile,$newFile = $review_pair.split(',')
|
||||||
|
Write-Host "Playing $review_count converted file: $newFile"
|
||||||
|
Write-Host
|
||||||
|
|
||||||
|
# Starting VLC Player with the file to review
|
||||||
|
Start-Process $reviewPlayer -ArgumentList `"$newFile`"
|
||||||
|
Start-Sleep -Seconds 6
|
||||||
|
|
||||||
|
# Wait until player is closed.
|
||||||
|
$processID = (Get-Process "vlc").id
|
||||||
|
Wait-Process -Id $processID
|
||||||
|
|
||||||
|
$msg = 'Do you want to keep the newly converted file and delete the old? (N for deleting NEW-file) [Y/N]'
|
||||||
|
do {
|
||||||
|
$response = Read-Host -Prompt $msg
|
||||||
|
} until (($response -eq 'n') -or ($response -eq 'y'))
|
||||||
|
|
||||||
|
if ($response -eq 'y')
|
||||||
|
{
|
||||||
|
Write-Host "delete old file, keep newly converted.."
|
||||||
|
$to_delete = $oldFile
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
Write-Host "delete newly converted, keep old file"
|
||||||
|
$to_delete = $newFile
|
||||||
|
$failedVideos = $failedVideos + 1
|
||||||
|
$convertedVideos = $convertedVideos - 1
|
||||||
|
}
|
||||||
|
Write-Host "DELETED: $to_delete" -ForegroundColor Red
|
||||||
|
Remove-Item -LiteralPath $to_delete
|
||||||
|
Write-Host "------------------------------------------------------------------------------------------------"
|
||||||
|
Start-Sleep -Seconds 2
|
||||||
|
}
|
||||||
|
|
||||||
|
Read-Host -Prompt "Press Enter to exit"
|
||||||
|
#############################################################################################################
|
||||||
|
# END - conversion script
|
@ -4,8 +4,9 @@
|
|||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
# Edit the $videoPath variable to point to your video-files folder:
|
# Edit the $videoPath variable to point to your video-files folder:
|
||||||
|
|
||||||
$videoPath = 'M:\1_movies\_main.movies\'
|
#$videoPath = 'M:\1_movies\_main.movies\'
|
||||||
#$videoPath = 'M:\2_serien\_main.series\'
|
#$videoPath = 'M:\2_serien\_main.series\'
|
||||||
|
$videoPath = 'M:\3_dokus\'
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
# HEVC profiles: main, main10, main444
|
# HEVC profiles: main, main10, main444
|
||||||
@ -76,10 +77,15 @@ foreach($video in $videos)
|
|||||||
$video = $video.Replace("`"", "")
|
$video = $video.Replace("`"", "")
|
||||||
$inputFile = $videoPath + $video
|
$inputFile = $videoPath + $video
|
||||||
|
|
||||||
# Get and check File info for codec, if it's already HEVC: - JSON query: (['media']['track'][1]['Format'])
|
# Pre-file-check if "HEVC" exist in filename skip filechecking:
|
||||||
$fileDetails = cmd /c $fileTester $inputFile --Output=JSON | ConvertFrom-Json
|
if ($video -match "HEVC")
|
||||||
$codec = $fileDetails.media.track[1].Format
|
{
|
||||||
#echo $codec
|
$codec = "HEVC"
|
||||||
|
} else {
|
||||||
|
# Get and check File info for codec, if it's already HEVC: - JSON query: (['media']['track'][1]['Format'])
|
||||||
|
$fileDetails = cmd /c $fileTester $inputFile --Output=JSON | ConvertFrom-Json
|
||||||
|
$codec = $fileDetails.media.track[1].Format
|
||||||
|
}
|
||||||
|
|
||||||
# If not already HEVC, convert video using NVEncC64:
|
# If not already HEVC, convert video using NVEncC64:
|
||||||
if($codec -ne "HEVC")
|
if($codec -ne "HEVC")
|
||||||
@ -96,7 +102,7 @@ foreach($video in $videos)
|
|||||||
Write-Host
|
Write-Host
|
||||||
|
|
||||||
# If the Subtitles should not be copied, delete the "--sub-copy 1,2" argument.
|
# If the Subtitles should not be copied, delete the "--sub-copy 1,2" argument.
|
||||||
$arguments = "--input `"$inputFile`" --codec hevc --audio-copy 1,2 --sub-copy 1,2 --profile $profile --output `"$outputFile`""
|
$arguments = "--input `"$inputFile`" --codec hevc --audio-copy 1,2,3,4 --sub-copy 1,2,3,4 --profile $profile --output `"$outputFile`""
|
||||||
|
|
||||||
Start-Process $NVEncoder -ArgumentList $arguments -WindowStyle Minimized
|
Start-Process $NVEncoder -ArgumentList $arguments -WindowStyle Minimized
|
||||||
|
|
||||||
@ -214,8 +220,13 @@ foreach($video in $videos)
|
|||||||
#############################################################################################################
|
#############################################################################################################
|
||||||
if ($review)
|
if ($review)
|
||||||
{
|
{
|
||||||
Write-Host "There are some files to review.. Starting reviewing first file."
|
$reviewFiles = Get-content -LiteralPath "$PSScriptRoot\logs\$logFolderName\review_needed.log" | Measure-Object –Line
|
||||||
|
$ReviewCount = $reviewFiles.Lines
|
||||||
|
|
||||||
|
Write-Host "There are $ReviewCount files to review.." -ForegroundColor Yellow
|
||||||
|
Read-Host -Prompt "Press Enter to start reviewing first file"
|
||||||
Write-Host
|
Write-Host
|
||||||
|
Write-Host "################################################################################################"
|
||||||
$review_count = 1
|
$review_count = 1
|
||||||
|
|
||||||
foreach($review_pair in Get-Content -LiteralPath "$PSScriptRoot\logs\$logFolderName\review_needed.log")
|
foreach($review_pair in Get-Content -LiteralPath "$PSScriptRoot\logs\$logFolderName\review_needed.log")
|
||||||
|
Loading…
Reference in New Issue
Block a user