RegEx/FFmpeg/Progress.regex.source.ps1
$myName = ($MyInvocation.MyCommand.ScriptBlock.File | Split-Path -Leaf) -replace '\.source', '' -replace '\.ps1', '.txt' $myRoot = $MyInvocation.MyCommand.ScriptBlock.File | Split-Path New-RegEx -Description @' Matches Progress Lines in FFMpeg output '@ -StartAnchor LineStart -Pattern "frame=" -Comment "frame=" | New-RegEx -CharacterClass Whitespace -Min 0 | New-RegEx -Name FrameNumber -CharacterClass Digit -Repeat | New-RegEx -CharacterClass Whitespace -Min 0 -Comment "Followed by the Frame Number" | New-RegEx -Pattern fps= -Comment "fps="| New-RegEx -CharacterClass Whitespace -Min 0 | New-RegEx -Name FramesPerSecond ( New-RegEx -CharacterClass Digit -LiteralCharacter '.' -Repeat ) | New-RegEx -CharacterClass Whitespace -Repeat -Comment "Followed by Frames Per Second" | New-RegEx -Pattern q= -Comment "q=" | New-RegEx -Name QuanitizerScale -Pattern "[\d\.N/A+]+" | New-RegEx -CharacterClass Whitespace -Repeat -Comment "Followed by the Quanitizer Scale" | New-RegEx -Pattern L?size= -Comment "size=" | New-RegEx -CharacterClass Whitespace -Repeat | New-RegEx -Name Size -Pattern "\d{1,}\wB" | New-RegEx -CharacterClass Whitespace -Repeat -Comment "Followed by the Size" | New-RegEx -Pattern time= -Comment "time=" | New-RegEx -Name Time -Pattern "[\d\:\.]+" | New-RegEx -CharacterClass Whitespace -Min 0 -Comment "Followed by the Time" | New-RegEx -Pattern bitrate= -Comment "bitrate=" | New-RegEx -CharacterClass Whitespace -Min 0 | New-RegEx -Name Bitrate -Pattern "[\d\.exN/A]+" | New-RegEx -Pattern 'kbits/s' | New-RegEx -Atomic -Min 0 -Pattern ( New-RegEx -CharacterClass Whitespace -Min 0 -Comment "Followed by optional duplicated frame count" | New-RegEx -Pattern dup= -Comment "dup=" | New-RegEx -CharacterClass Whitespace -Min 0 | New-RegEx -Name Duplicated -Pattern "\d+" ) | New-RegEx -Atomic -Min 0 -Pattern ( New-RegEx -CharacterClass Whitespace -Min 0 -Comment "Followed by optional dropped frame count" | New-RegEx -Pattern drop= -Comment "drop=" | New-RegEx -CharacterClass Whitespace -Min 0 | New-RegEx -Name Dropped -Pattern "\d+" ) | New-RegEx -CharacterClass Whitespace -Min 0 -Comment "Followed by the Bitrate" | New-RegEx -Pattern speed= -Comment "speed=" | New-RegEx -CharacterClass Whitespace -Min 0 | New-RegEx -Name Speed -Pattern "[\d\.N/A+]+" | New-RegEx -Pattern 'x' | New-RegEx -CharacterClass Whitespace -Min 0 -Comment "Followed by the Speed" |#> Set-Content -Path (Join-Path $myRoot $myName) -Encoding UTF8 -PassThru |