[HN Gopher] Go CLI to calculate total media duraton in directories
___________________________________________________________________
Go CLI to calculate total media duraton in directories
Author : mddysr
Score : 6 points
Date : 2023-09-04 16:23 UTC (6 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| d0mine wrote:
| In Python: https://stackoverflow.com/questions/17185348/how-to-
| get-avi-...
| netmare wrote:
| As long as we're golfing: In PowerShell, using my personal
| script library: F:films> ls -rec -file | gec
| video | gvi | ndur 372:18:09
|
| where:
|
| - `ls -rec -file` gets all files recursively under CWD
| (F:films)
|
| - `gec video` selects video files via extension (gec -> Get-
| ExtensionCategory)
|
| - `gvi` uses FFPROBE to get video info in custom object (gvi ->
| Get-VideoInfo)
|
| - `ndur` sums Duration property of objects and converts seconds
| to 'hhh:mm:ss'
|
| Most people I've shown this have found the syntax and aliases
| confusing and non-intuitive. They prefer the find/xargs/awk
| incantations, which, I'm told, are more elegant, correct and
| precise. After that, I'm usually speechless.
| abdusco wrote:
| What are the possible use cases for this tool? Why would I want
| to find out the total runtime of all videos in a directory?
|
| Also, you might wanna limit concurrency[0] instead of spawning
| many ffprobe instances at the ~same time.
|
| [0]: https://github.com/sourcegraph/conc
|
| In another note, ChatGPT suggests this shell command to do the
| same thing. It doesn't process files in parallel though.
| find . -name "*.mp4" -print0 | \ xargs -0 -I {} ffprobe
| -v error -show_entries format=duration -of
| default=noprint_wrappers=1:nokey=1 {} | \ awk '{sum +=
| $1} END {print sum}'
| iruoy wrote:
| This way it will output time in H:MM:SS find
| . -type f -print0 | \ xargs -0 -I {} ffprobe -v quiet
| -show_entries format=duration -of
| default=noprint_wrappers=1:nokey=1 {} | \ awk '{s +=
| $1} END {printf "%d:%.2d:%.2d\n", s/3600, s%3600/60,
| s%3600%60}'
| metadat wrote:
| Simply adding the `-P 10` flag to xargs will make it run 10 (or
| however many processes you want) in parallel.
| o1y32 wrote:
| One use case is that if you have a folder of (presumably
| legitimately acquired, or you know what I mean) movie files,
| you can figure out how long it will take you to finish them.
| Although number of video files * 2 hours/file is also likely a
| very good estimate.
|
| Although I seriously doubt data hoarders care about that. A
| movie will be eventually watched someday. If they run out of
| space, they'll get another drive. Storage is cheap.
| mddysr wrote:
| Azmena let's you show total duration of media files in
| directories and sub-directories.
___________________________________________________________________
(page generated 2023-09-04 23:02 UTC)