Table of Contents
Audio/Video Processing and Podcasts
SoX - Sound eXchange
FFmpeg
FFmpeg provides many audio processing filters:
latest prebuilt (static) binaries:
FFmpeg is utilized in several tools, e.g.:
- in (YouTube) Downloader GUIs
- Audio/Video format and CODEC conversion, e.g. QWinFF
- source: https://github.com/qwinff/qwinff
YouTube Downloader
Downloading audio and video files is interesting for archiving - but also preprocessing for later watching or listening. Many platforms - other than YouTube - are supported.
As described in yt-dlp Wiki on 2022-09-19, there are 3 active forks for the command line:
- youtube-dl - The original project
- yt-dlp - a promising alternative
- ytdl-patched - a fork of yt-dlp
There are a multitude of Downloader-GUIs, here a very short selection:
-
- abandoned source: https://github.com/jely2002/youtube-dl-gui
- ClipGrab - a GUI for (YouTube-)Downloader (and converter)
- source and linux releases with my modifications
- ClipGrab - the origin for this project
Podcast programs & apps
Podcast apps (automatically) download episodes from RSS feeds for (offline and mobile) listening.
- AntennaPod for Android
- Pocket Casts for Android, iOS and Web (for Linux or Windows PCs)
- free version doesn't allow entering a (private) Feed URL
- don't know if commercial Plus allows Feed URLs
- gPodder for Windows/Linux/MacOS computers
- more downloader and UI than player
- also allows downloading/watching videos from YouTube channels. that requires a special URL with the channel-id:
- LifeHacker Turn YouTube channels into Podcasts does no longer work, but shows the idea
- selected gPodder docs
Providing an own podcast feed
Podsync can download videos, convert to audio and publish them as an RSS feed - suitable for subscription with podcasts apps. Tools like yt-dlp and ffmpeg are utilized. The only downside: Podsync requires a public server.
Changing speed - not pitch
Listening consumes time - of course. Despite skipping (silent) sections, many episodes can be perceived at (much) higher speed - depending on the speaker(s); thus saving time. The following points to some programs/algorithms.
TDHS, see https://en.wikipedia.org/wiki/Time-domain_harmonic_scaling
implementation: https://github.com/hayguen/audio-stretch
and it's origin https://github.com/dbry/audio-stretch
Browser Extension: skip-silence
https://github.com/vantezzen/skip-silence/issues/36
https://chrome.google.com/webstore/detail/skip-silence/fhdmkhbefcbhakffdihhceaklaigdllh?hl=en
FFmpeg uses atempo
:
https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
libavfilter/af_atempo.c
in git://source.ffmpeg.org/ffmpeg
it is based on https://sourceforge.net/projects/apprenticevideo/
with code at https://github.com/pkoshevoy/aeyae
in yae/ffmpeg/yae_audio_tempo_filter.h
theory at http://www.surina.net/article/time-and-pitch-scaling.html