کاتالوگ نمونهکدها (Examples)
تمامی نمونهکدهای زیر به صورت کامل و آماده اجرا در پوشه examples/ مخزن گیتهاب قرار دارند. برای هر مورد، هم شیوه اجرا در کد Go و هم دستور معادل خط فرمان (CLI) آورده شده است.
۱. پکیجینگ ساده HLS (Simple HLS)
مسیر: examples/simple_hls/main.go
پکیجینگ ویدیوی VOD به همراه گزارش لحظهای درصد پیشرفت و نرمالسازی خودکار چرخش ویدیو.
اجرا با Go:
cd examples/simple_hls && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i input.mp4 -o ./output/hls --normalize۲. پکیجینگ پیشرفته DASH CMAF (Advanced DASH)
مسیر: examples/advanced_dash/main.go
استریم DASH CMAF با تنظیم فریمهای B (WithBFrames(2))، مقیاس بیتریت بر پایه نرخ فریم (WithScaleBitrateWithFPS()) و تعداد ریسمانهای سفارشی پردازنده.
اجرا با Go:
cd examples/advanced_dash && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i input.mp4 -o ./output/dash --format=dash --bframes=2 --threads=4۳. اسکرابر تامبنیل و پلیر پیشنمایش (Thumbnails & Web Preview)
مسیر: examples/thumbnails_and_preview/main.go
تولید خودکار اسپرایتهای تایملاین (thumbnails_0.jpg)، فایل نشانهگذاری زمانی (thumbnails.vtt) و اجرای وبپلیر لوکال با تم تاریک مدرن.
اجرا با Go:
cd examples/thumbnails_and_preview && go run main.goدستور معادل خط فرمان (CLI):
# ۱. پکیجینگ ویدیو به همراه تامبنیلها
mosaic -i input.mp4 -o ./output/hls --thumbnails
# ۲. اجرای پلیر پیشنمایش تحت وب روی پورت 8080
mosaic preview ./output/hls۴. واترمارک داینامیک، زیرنویس و نرمالسازی صدا
مسیر: examples/watermark_and_subtitles/main.go
درج لوگوی شفاف با موقعیتدهی اختصاصی، استانداردسازی بلندی صدا بر اساس EBU R128 و تبدیل خودکار زیرنویس SRT به WebVTT.
اجرا با Go:
cd examples/watermark_and_subtitles && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i input.mp4 -o ./output/hls_branded \
--watermark ./branding/logo.png \
--subtitles ./subtitles/fa.srt,./subtitles/en.srt \
--normalize-audio۵. رمزنگاری امن HLS AES-128
مسیر: examples/encryption_aes128/main.go
تولید خودکار کلیدهای امن ۱۶ بایتی (enc.key)، ساخت فایلهای کانفیگ و رمزنگاری سگمنتهای HLS با برچسب استاندارد #EXT-X-KEY.
اجرا با Go:
cd examples/encryption_aes128 && go run main.goدستور معادل خط فرمان (CLI):
# پکیجینگ با رمزنگاری سگمنتها
mosaic -i input.mp4 -o ./output/hls_encrypted --encrypt-aes128
# پخش استریم رمزنگاریشده در پلیر پیشنمایش
mosaic preview ./output/hls_encrypted۶. کدکهای نسل جدید AV1 و HEVC (بهینهسازی Capped-CRF)
مسیر: examples/nextgen_av1_hevc/main.go
انکودینگ ویدیو با راندمان بالا با استفاده از کدکهای AV1 (libsvtav1) و HEVC (libx265) به همراه بهینهسازی کیفیت بر پایه محتوا برای کاهش ۳۰ تا ۵۰ درصدی حجم ویدیو.
اجرا با Go:
cd examples/nextgen_av1_hevc && go run main.goدستور معادل خط فرمان (CLI):
# انکود با کدک نسل جدید AV1 و CRF 28
mosaic -i input.mp4 -o ./output/hls_av1 --codec=av1 --crf=28
# انکود با کدک HEVC (H.265) و CRF 23
mosaic -i input.mp4 -o ./output/hls_hevc --codec=hevc --crf=23۷. آپلود مستقیم ابری به S3 و MinIO
مسیر: examples/s3_cloud_upload/main.go
آپلود موازی و همزمان تمامی فایلهای استریم تولیدشده (.m3u8, .mpd, .m4s, .vtt, .jpg) به فضاهای ابری S3 / MinIO / Cloudflare R2 با استفاده از امضای خالص AWS SigV4 بدون وابستگی خارجی.
اجرا با Go:
cd examples/s3_cloud_upload && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i input.mp4 -o ./output/hls \
--s3-bucket my-stream-bucket \
--s3-prefix vod/movie-101 \
--s3-region us-east-1 \
--s3-endpoint https://s3.us-east-1.amazonaws.com۸. استریم پخش زنده کمتاخیر (Live Low-Latency)
مسیر: examples/live_streaming/main.go
تولید استریمهای زنده با استفاده از ProfileLive، سگمنتهای ۲ ثانیهای و فلگهای Low-Latency CMAF برای HLS و DASH.
اجرا با Go:
cd examples/live_streaming && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i input.mp4 -o ./output/hls_live --profile=live۹. نرمالسازی چرخش ویدیوهای موبایل
مسیر: examples/orientation_normalization/main.go
بازرسی متادیتای ماتریس چرخش، چرخش فیزیکی فریمهای ویدیو و پاکسازی تگ چرخش در خروجی جهت جلوگیری از پخش دفرمه در پلیرها.
اجرا با Go:
cd examples/orientation_normalization && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i mobile_video.mp4 -o ./output/hls_rotated --normalize۱۰. نوار پیشرفت گرافیکی در ترمینال
مسیر: examples/progress_monitoring/main.go
رندر نوار پیشرفت یونیکد زیبا در خط فرمان ([██████░░░░] 60.0%) با نمایش سرعت، بیتریت، زمان سپریشده و مصرف رم (RSS).
اجرا با Go:
cd examples/progress_monitoring && go run main.goدستور معادل خط فرمان (CLI):
mosaic -i input.mp4 -o ./output/hls --log-level=info۱۱. شتابدهندههای سختافزاری کارت گرافیک (Multi-GPU)
مسیر: examples/multi_gpu/main.go
انکود پرسرعت با استفاده از کارتهای گرافیک NVIDIA NVENC، اینتل و AMD (VAAPI) و اپل (VideoToolbox).
اجرا با Go:
cd examples/multi_gpu && go run main.goدستور معادل خط فرمان (CLI):
# کارت گرافیک NVIDIA
mosaic -i input.mp4 -o ./output/hls --gpu=nvenc
# کارت گرافیک Intel / AMD (VAAPI)
mosaic -i input.mp4 -o ./output/hls --gpu=vaapi
# شتابدهنده اپل در سیستمعامل macOS
mosaic -i input.mp4 -o ./output/hls --gpu=videotoolbox