برای پشتیبانی از چندین مرورگر، باید از FFmpeg برای تبدیل فایل .mov
خود به دو کانتینر مختلف استفاده کنید: یک ظرف MP4 و یک کانتینر WebM. در عمل واقعی، احتمالاً یک کدک را در همان زمان مشخص می کنید. در حال حاضر، ما به FFmpeg اجازه می دهیم از پیش فرض های خود استفاده کند.
اگر این مفاهیم برای شما جدید است، قبل از ادامه مطلب باید اصول فایل Media را بخوانید. علاوه بر این، اگر FFmpeg را نصب نکردهاید، اصول برنامه Media را بخوانید تا آن را با Docker راهاندازی کنید.
ما از نصب پیشنهادی Docker و فایل glocken.mov از فایلهای رسانهای آماده برای وب اضافه شده در فهرست media
استفاده میکنیم. برای تمام دستورات این قسمت از FFmpeg نسخه 4.3.2 استفاده کردیم.
ظروف
ابتدا باید دو کانتینر خود را از فایل .mov
با پسوندهای .mp4
و .webm
با هر دو جریان صوتی و تصویری در داخل فایل ایجاد کنیم. اگر تفاوت بین آنها را نمی دانید برای اطلاعات بیشتر در مورد کانتینرها و جریان ها ، اصول فایل رسانه را مرور کنید.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
ایجاد WebM بیشتر از MP4 طول می کشد. وقتی به نتایج نگاه می کنید تعجب آور نیست. در حالی که MP4 به حدود 83%
از اندازه فایل اصلی فشرده می شود، WebM به 78%
از اندازه فایل اصلی کاهش می یابد، اما می تواند بسیار کوچکتر باشد. نتایج شما متفاوت خواهد بود. لازم به ذکر است که FFmpeg 4.2.2
نرخ بیت پیشفرض ویدیو را روی 200k
تنظیم میکند و در 4.3.2
نرخ بیت پیشفرض را تنظیم نمیکند. بنابراین ویدیو دیگر تنها 4%
از نسخه اصلی نیست. میتوانید با استفاده از دستور ls -a
bash در پوشهای که فایلهای رسانهای شما در آن قرار دارند، این را برای خودتان ببینید.
به عنوان مثال:
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 9503301 Mar 7 18:30 glocken.webm
برای دریافت یک فایل کوچک، به جای آن این کار را انجام دهید:
/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame= 300 fps=3.6 q=0.0 Lsize= 483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 494497 Mar 7 18:45 glocken.webm
کار خود را بررسی کنید
برای تأیید نتایج، از FFmpeg و Shaka Packager همانطور که قبلاً در اصول Media Application نشان داده شده است استفاده کنید:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
کدک ها
بعد، کدک. همانطور که در اصول فایل Media گفته شد، یک کدک با یک ظرف (نوع فایل) یکسان نیست . دو فایل از یک نوع کانتینر می توانند داده ها را با استفاده از کدک های مختلف فشرده نگه دارند. برای مثال، فرمت WebM اجازه می دهد تا صدا با استفاده از Vorbis یا Opus رمزگذاری شود. برای تغییر کدک از FFmpeg استفاده می کنیم. به عنوان مثال، این دستور یک فایل .mkv
را با یک کدک صوتی vorbis
و یک کدک ویدیویی av1
خروجی می دهد.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
در این مثال، پرچم -c:a
و -c:v
به ترتیب برای تعیین کدک های صوتی و تصویری هستند.
صفحه تبدیل رسانه دستورات لازم برای تبدیل کدک ها را فهرست می کند. جداول زیر کتابخانه های مورد استفاده در FFmpeg را برای انجام تبدیل کدک برای فایل های WebM و MP4 خلاصه می کند. اینها فرمت هایی هستند که به ترتیب برای DASH و HLS توصیه می شوند.
ویدئو
کدک | پسوند | کتابخانه |
---|---|---|
av1 | WebM، mkv | libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
صوتی
کدک | پسوند | کتابخانه |
---|---|---|
aac | MP4 | aac |
اپوس | WebM | لیبوپوس |
گرداب | WebM | libvorbis |
در مرحله بعد، ما به شما نشان خواهیم داد که چگونه نرخ بیت فایل های تازه ایجاد شده خود را تغییر دهید.