# Common Media Processing Workflows ## Video Optimization ### Optimize for Web ```bash # H.264 with good compression ffmpeg -i input.mp4 \ -c:v libx264 -preset slow -crf 23 \ -c:a aac -b:a 128k \ -movflags +faststart \ output.mp4 ``` ### Multi-Pass Encoding ```bash # Pass 1 (analysis) ffmpeg -y -i input.mkv -c:v libx264 -b:v 2600k -pass 1 -an -f null /dev/null # Pass 2 (encoding) ffmpeg -i input.mkv -c:v libx264 -b:v 2600k -pass 2 -c:a aac output.mp4 ``` ### Hardware-Accelerated Encoding ```bash # NVIDIA NVENC ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -preset fast -crf 22 output.mp4 # Intel QuickSync ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv output.mp4 ``` ### Extract Video Segment ```bash # From 1:30 to 3:00 (re-encode for precision) ffmpeg -i input.mp4 -ss 00:01:30 -to 00:03:00 \ -c:v libx264 -c:a aac output.mp4 ``` ## Image Workflows ### Create Responsive Images ```bash # Generate multiple sizes for size in 320 640 1024 1920; do magick input.jpg -resize ${size}x -quality 85 "output-${size}w.jpg" done ``` ### Batch Image Optimization ```bash # Convert PNG to optimized JPEG mogrify -path ./optimized -format jpg -quality 85 -strip *.png ``` ### Complex Image Pipeline ```bash # Resize, crop, border, adjust magick input.jpg \ -resize 1000x1000^ \ -gravity center \ -crop 1000x1000+0+0 +repage \ -bordercolor black -border 5x5 \ -brightness-contrast 5x10 \ -quality 90 \ output.jpg ``` ## GIF Creation ### Video to GIF ```bash # High quality GIF with palette ffmpeg -i input.mp4 -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif ``` ### Animated GIF from Images ```bash # Create with delay magick -delay 100 -loop 0 frame*.png animated.gif # Optimize size magick animated.gif -fuzz 5% -layers Optimize optimized.gif ``` ## Background Removal Workflows ### Batch Background Removal ```bash # Process all images in directory for img in *.jpg; do rmbg "$img" -m modnet -o "${img%.jpg}-no-bg.png" done ``` ### Product Photography ```bash # 1. Remove background rmbg product.jpg -m u2net-cloth -o product-no-bg.png # 2. Resize to multiple sizes magick product-no-bg.png -resize 800x800 product-800.png magick product-no-bg.png -resize 400x400 product-400.png # 3. Add white background if needed magick product-no-bg.png -background white -flatten product-white-bg.jpg ``` ## Media Analysis ### Inspect Video Properties ```bash # Detailed JSON output ffprobe -v quiet -print_format json -show_format -show_streams input.mp4 # Get resolution ffprobe -v error -select_streams v:0 \ -show_entries stream=width,height \ -of csv=s=x:p=0 input.mp4 ``` ### Image Information ```bash # Basic info identify image.jpg # Detailed format identify -verbose image.jpg # Custom format identify -format "%f: %wx%h %b\n" image.jpg ```