Media Transcoding (FFmpeg)
Overview
Use FFmpeg presets to normalize video outputs for web streaming, mobile delivery, or archival quality. Your hf-videos repo already includes a simple bash script and a more advanced Python script with presets, backups, and logging.
Quick Start (hf-videos)
bash
./ffmpeg_convert.sh check ./ffmpeg_convert.sh web_standard "My Video.mp4" ./ffmpeg_convert.sh batch_web_standard
Outputs are written to converted/ with backups in backup/ and logs in conversion.log.
Preset Summary (hf-videos)
- •web_standard: 1080p max, CRF 23, 128k audio,
+faststart - •web_high: 1080p max, CRF 20, 192k audio
- •mobile: 720p max, CRF 25, 96k audio
- •ultra_compact: 480p max, CRF 28, 64k audio
- •archive: original res, CRF 18, 256k audio
All presets use H.264 + AAC with +faststart for streaming-friendly MP4s.
Batch Workflow
- •Run a single-file conversion first to validate output.
- •Run batch conversion once the preset is confirmed.
- •Verify output sizes and playback.
Batch commands:
bash
./ffmpeg_convert.sh batch_web_standard ./ffmpeg_convert.sh batch_mobile ./ffmpeg_convert.sh batch_ultra_compact
Advanced Script (convert_video.py)
Use convert_video.py when you need:
- •Progress monitoring
- •Metadata inspection
- •Overwrite control
- •Preset listing and batch automation
bash
python3 convert_video.py --list-presets python3 convert_video.py --file "My Video.mp4" --preset web_standard python3 convert_video.py --preset mobile --overwrite
Output Conventions
- •Converted files use suffixes like
_web_standard. - •Backups preserve original filenames.
- •Logs go to
conversion.logfor audit and troubleshooting.
Troubleshooting
- •FFmpeg missing:
brew install ffmpeg(macOS) or install from ffmpeg.org. - •Permission errors:
chmod +x ffmpeg_convert.sh. - •Disk pressure: clean
converted/andbackup/after validation.
Related Skills
- •
toolchains/universal/infrastructure/docker