FFmpeg:کتێبخانەیەکی سەرچاوەکراوە بۆ دەستکاریکردنی پەڕگەی دەنگ و ڤیدیۆ
Nov 6, 2020
8 خولەک
1581 وشە
تــاگ: سەرچاوەکراوە
هاوبەشی بکە:

پێشەکی :

FFmpeg چوارچێوەیەکی خۆڕایی(بەلاش) و سەرچاوەکراوە، چەند سەکۆیی1 ؛ هەموو کەسێک دەتوانێت زۆر بەسادەیی بۆ تۆمارکردن و گۆڕاندن و تەوژمی دەنگ و ڤیدیۆی سەر هێڵ ،لە رێگای هەر بەرنامەیەک بەکاری بهێنێت.

ئەم کتێبخانە(چوارچێوە) بریتییە لە کتێبخانەکانی دیکە وەک libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale وە libswresample . ئەپەکان و زۆربەی نەرمەکالاکان دەتوانن لە FFmpeg بۆ کارە پێشکەوتنەکانی خۆیان لە سەر فایلە دەنگییەکان و ڤیدیۆکان سوودی لێ بگرن.

 _______              ______________
|       |            |              |
| input |  demuxer   | encoded data |   decoder
| file  | ---------> | packets      | -----+
|_______|            |______________|      |
                                           v
                                       _________
                                      |         |
                                      | decoded |
                                      | frames  |
                                      |_________|
 ________             ______________       |
|        |           |              |      |
| output | <-------- | encoded data | <----+
| file   |   muxer   | packets      |   encoder
|________|           |______________|

دامەزراندن لەسەر ئوبونتو

FFmpeg لەگەڵ کانگا و کۆگای2 فەرمییەکانی ئوبونتو بڵاو دەکرێتەوە.بە یارمەتی بەڕێوەبەری پاکەتی فەرمی apt توانایی دامەزراندنی هەیە.کە ئەم کارەش زۆر بە سادەیی ئەنجام دەبێت هەر چەند کە ناتوانین بڵێین کە دوایین وشانمان دامەزراندووە . بۆ دامەزراندن، لە هێڵی یەکەم ،بەڕۆژکردنێکی سادە دەکەین ئینجا لە هێڵی دووهەم، دایدەمەزرێنین؛ بەم جۆرە:

sudo apt update
sudo apt install ffmpeg

ئێستا بۆ ئەوە کە بزانین وشانی چەندمان دامەزراندووە فەرمانەکەی خوارەوە بەکاردەهێنین :

ffmpeg -version

دەر ئەنجامی فەرمانەکەی خوارەوە دەکاتە ئەمە :

Output:
ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)

ئێستا ئێمە وشانی جێگیر و پایەداری FFmpegــیمان دامەزراند.

دامەزراندنی FFmpeg لە کانگای گیتهاب

دەتوانین لە کۆگای کەسی سێهەم PPA سوود بگرین بۆ دامەزراندن بەم شێوەیە:

sudo apt install software-properties-common
sudo add-apt-repository --yes ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg

هەر وەک دامەزراندن بە یارمەتی بەڕێوەبەری پاکەتی ئوبونتو لێرەش دەتوانن بە فەرمانی ffmpeg -version چاو لە وشانی بکەن.

دامەزراندن لە ڕێگای سنەپ(Snap)

سادەترین رێگا دامەزراندن لە رێگای سیسیتەمی پاکەتی سنەپە.بۆ زانیاری دەربارەی سنەپ دەتوانن سەردانی ئەم بابەتە بکەن. لە فەرمانەکەی خوارەوە سەرەتا ئێمە پاکەتی سنەپ دادەمەزرێنین ئینجا FFmpeg.

sudo apt update
sudo apt install snapd
sudo snap install ffmpeg

بەکارهێنانی فەرمانەکانی FFmpeg

  1. گۆڕانی جۆری پەڕگە(فۆرمات)

    بە یارمەتی فەرمانەکەی خوارەوە پەڕگە فیلمی video.mp4 دەگۆڕین بە video.mkv، بەم سادەییە :)

    ffmpeg -i video.mp4 video.mkv
    

    ئێستا بە پێچەوانە دەتوانن لە نمونەی سەرەوە فیلمیvideo.mkv بکەن بە فۆرماتی video.mp4 .

    بە گشتی لە فەرمانەکانی FFmpeg کاتێک سوود لە i- دەگرین، واتە هاوردەیەکمان هەیەو دەبێ پاش ئەم بژاردە فایلەکەمان بنووسین.

ئەم بژاردانە دەریایێکن هەر بۆیە ناتوانم گشتیان بە وردی باس بکەم دەتوانن لە بەشی یارمەتی فەرمان بۆ زانیاری فرەتر سوود بگرن.

  1. بڕین و جیاکردنەوە

    بڕین و جوداکردن دەتوانێت لە سەر پەڕگە دەنگەکان و ڤیدیۆ ئەنجام ببێت تەنانەت لە سەر ژێرنووسەکان.با نمونەیەک بهێنینەوە:

    ffmpeg -i input.mp4 -ss 00:00:10 -t 25 output.mp4
    

    ئەم فەرمانە دەڵێت ffmpeg پەڕگەیەک بە ناوی input.mp4 هاتوەتەژوورەوە ، ss- نیشانیدەدا کە لە چ مەودایەک بڕین دەست پێ بکات وە بە ژمارەیەک کە پاش t- نووسراوە دەڵێین چەندە بچێتە بەرەوە.

    بە کورتە : فەرمانەکەی سەرەوە لە چرکەی ١٠ بە مەودای ٢٥ چرکە(چرکەی ١٠ تا ٣٥) فیلمەکە دەبڕێت وە بە ناوی output.mp4 پاشکەوتی دەکا.

ffmpeg دەتوانێت بژاردەی to- بگرێت کە جیاوازی لەگەڵ t- ئەمەیە کە بژاردەی to- دەڵێت لە کوێی ناوەڕۆکت پێویستە بۆ بڕین؛ بۆ وێنە لێرە دەمانتوانی بەم جۆرە بنووسین -ss 00:00:10 -to 00:00:35 .

دوو بژاردەی ss- وە t- دەتوانن بە تەنهاییش بەکار ببردرێن.هەروەها هێڵێک فەرمان دەتوانێت چەندین هەناردەی لێ پاشکەوت بکرێت.بۆ نمونە :

ffmpeg -i input.mp4 -t 00:00:30 output1.mp4 -ss 00:00:20 output2.mp4

دەتوانین بەم جۆرە بینووسین کە باشتر فامی لۆ بکەین:

ffmpeg -i input.mp4 
-t 00:00:30 output1.avi
-ss 00:01:20 output2.mkv
-ss 00:00:50 -t 20 output3.mp4

فەرمانەکانی سەرەوە بەم جۆرە ڕاڤە دەکرێن کە، پەڕگەی لێ بگرە ئینجا بیبڕە و سێ پەڕگە فایلم پێ بدە.

  • یەکەم : ٠٠:٠٠:٣٠ لە سەرەتای ناوەرۆک(٣٠ چرکەی سەرەتای فیلم) بە ناو و فۆرماتی output1.avi،
  • دووهەم: لە کاتی ٠٠:٠١:٢٠ تا کۆتایی فیلم(لە ١:٢٠ چرکە تاکۆتایی فیلم) بە ناو و فۆرماتی output2.avi،
  • سێهەم: لە ٠٠:٠٠:٥٠ بە ماوەی ٢٠ چرکە(لە چرکە ٥٠ تا ١خولەک و ١٠ چرکە کە کۆی گشتی دەبێتە ٢٠ چرکە فیلم)بە ناو و فۆرماتی output3.avi پاشکەوت بکە.
  1. جوداکردنی ستریم

    گەر هەرەکتان بێت یەکێک لە ستریمەکان وەک دەنگ و فیلم لە پەڕگەیەک دەریکێشن دەتوانن بە پێێ وشانی FFmpeg لە فەرمانی جیاواز سوود بگرن.نمونەی خوارەوە ببینن:

    ffmpeg -i video.mp4 -vn -ab 256 audio.mp3
    

    یان ئەمەی دیکە :

    ffmpeg -i video.mp4 -c:a aac audio.aac
    

    فەرمانی یەکەم دەڵێت بە یارمەتی بژاردەی vn- ستریمی video ــم هەرەک ناوێت :) بە یارمەتی فەرمانی ab- فۆرماتی هەناردە دەتوانێت mp3 بێت بە چۆنایەتی ٢٥٦kbps کە لە پێشی دامانا.

    فەرمانی دووهەم: لەو شوێنە کە نوسیومانە c:a- بەشی گرینگی a- کە دەڵێت من لە ناوەرۆک، ستریمی دەنگم هەرەکە وە گەرەکمە هەناردەم بۆ دەرەوە لە جۆر یان فۆرماتی aac بێت وە بیخە نێو پەڕگە فایلیaudio.aac.

بە گشتی کاتێک دەنووسین c:s- ، واتە ژێرنووس؛ کاتێک دەنووسین c:v- واتە ڤیدیۆ وە کاتێک دەنووسین c:a- واتە دەنگ.

پرسیار : کاتێک گەرەکمانە دەنگی دووهەم لە ڤیدیۆ دەربێنین چ فەرمانێک بنوسین؟

ffmpeg -i video.mp4 -c:a:1 aac audio2.aac

سەرنج بدە ئەمە c:a:1- بە گشتی کاتێک دەنووسین c:a:n- واتە لە نێو ناوەڕۆکەکەی من بچۆ بۆ لای audio یا دەنگەکان(چونکە لە نێوەڕاست پیتی a ــمان داناوە واتە دەنگە،گەر vــمان دانایێ دەبوو بە ڤیدیۆ و گەر sــمان دانایێ دەبوو بە ژێر نووسەکان) ئینجا ژێر نووسی n-1 ڕچاو بگرە.بۆ چی n-1 ؟ چۆنکە لە جیهانی کۆمپیوتر ژماردن لە 0 دەستپێدەکا.

نمونەی خوارەوە ئیمە ژێرنووسی دووهەمی فیلم دەردێنین:

ffmpeg -i input.mp4 -map 0:s:1 subs.vtt

لێرە فەرمانی map- دەبینین کە پێشنیار دەکەم زۆرتر زانیاریتان لێێ بێت. فیلمێکی هاوردەمان هەیە(input.mp4) ژمارە سفر لە پاش map- کە تەنها هاوردەی input.mp4ــە بۆ ژێرنووسی ١ واتە دووهەمین ژێر نووس و بیخزێنە نێو subs.vtt.

چەند هاوردە

بۆ ئەوە چەند فیلم لە فەرمانی FFMPEG تێخزێنین بەم شیوە کردار دەکەین:

ffmpeg -i input1.mp4 -i input2.mp4 ...

لە فەرمانەکەی سەرەوە دوو هاوردەمان بەناوی یەکەم input1.mp4 و دووهەم input2.mp4 هەیە.ئێستا هەر کات گەرەکمان بێت لەم فەرمانە بە هاوردەی یەکەم ئیش بکەین واتە input1.mp4 لە

-map 0

ئێستا گەر بە ناوەڕۆکی هاوردەی دووهەم ئیشمان بێت لە فەرمانی

-map 1

سوود دەگرین.

خاڵ: گەر لە پاش ژمارەکە جووتخاڵێک(:) بنووسین لەگەڵ نووسەکانی v یا s یا a بەم مانایەیە کە ستریمەکانی ڤیدیۆ، ژێرنووس یان دەنگمان هەرەکە:

-map 0:v
-map 0:s
-map 0:a

گەر دوای ئەمانە جووتخاڵ بنووسین و ژمارەیەک دابینن ئەوە دیاریی دەکەین کە بەکام یەک لە هاوردەکانمان ئیش دەکەین.لە خوارەوە من دەنگی دووهەم لە هاوردەی سێهەمم گەرەکە :

-map 2:a:1

زیادکردنی ستریم

گەر لەگەل ژێرنووس کێشەت بوو دەتوانی ژێرنووسی نوێ بەم جۆرە بلکێنیت بە فیلمەکەت

ffmpeg -i movie.mp4 -i subtitle.srt -map 0 -map 1 output.mkv

فەرمانی سەرەوە دەڵێت بە ffmpeg کە، دوو دانە هاوردەت هەیە(movie.mp4 و subtitle.srt)؛بەیارمەتی:

-map 0

دەڵێم هاوردەی یەکەم ڕچاو بگرە وە بە فەرمانی

-map 1

هاوردەی دووهەمیش ڕچاو بگرە لە کۆتایی ئەمانە تێکڵاو بکە و بیخزێنە نێو output.mkv .

بۆ نمونەیێکی دیکە،زیادکردنی دەنگی نوێ بە فیلمی(بی ئەوە کە لە map سوود بگرین)، هێڵە فەرمانی خوارەوە دەنووسین:

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4

دوو هەناردەمان هەیە(video.mp4 و audio.mp3) بە فەرمانی خوارەوە:

-c:v copy

لێرە پێی دەڵێین برۆ بۆ لای ستریمی ڤیدیۆ وە بە یارمەتی وشەی copy فۆرماتی لە هەر جۆرێک هەیە هەر ئەوە ڕچاو بگرە:

-c:a aac

دەڵێین برۆ بۆ لای ستریمی دەنگ و جۆرەکەی بە acc ڕچاو بگرە.

سڕینەوەی ستریم

گەر پێمان خۆش بێت کە ستریمێک لە ناورۆکێکی بسڕینەوە بەم شێوە فەرمان دەنووسین.لەم نموونە فیلم بێ دەنگ یان Mute دەکەین:

ffmpeg -i input.mp4 -map 0:v -c copy output.mp4

بەیارمەتی فەرمانی خوارەوە

-map 0:v

دەڵێین لە ستریمی یەکەمان یان input.mp4 بێرۆ بەشی ڤیدیۆ هەڵبژێرە وە بە یارمەتی c copy- کە دڵخوازە فۆرماتی هەناردە وەه فۆرماتی هاوردە لێبکە.

چەند زانیاری دیکە

  1. گۆڕانی ئەندازەی فیلم

    ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4
    
  2. سووڕاندنی فیلم

    ٩٠ پلە بۆ لای میلی کاتژێر

    ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4
    

    گەر transpose=1 بگۆڕین بە transpose=2 دەبێتە ٩٠ پلەی پێچەوانەی میلی کاتژێر.

  3. گوشاردن و پەستانەوەی فیلم

    ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
    

    هەر چی ژمارەی crf 24- کەمتر بێت واتە ژمارەی ٢٤ چکۆلەتر بێت پەستانەکەمان کەمترە، ژمارەی ٠ واتە هیچ پەستانێکی لێ نییە.هەر چی ژمارە لە سەرتروە بێت واتە جۆنایەتی کەمتر و بە پێچەوانە.

    بژاردەی preset خێرایی ئیشەکەمان دابین دەکا دەتوانێتultrafast، superfast، veryfast، faster، fast، medium، slow, slower، veryslow بێت.هەرچی خیڕایی بچێتە سەرەوە کواڵێتی کەمتر دەبێتوە و بە پێچەوانە.پێشگریمانە لە ffmpeg خێرایی بە شێوازی medium.

  4. گۆڕانی فیلم بە ئاڵبۆمی وێنە

    ffmpeg -i input.mp4 -r 1 -f image2 image-%3d.png
    

    بژاردەی r- پێمان دەڵێت چەند فریم بکا بە وێنە، ئێمە گوتمان هەر ١ فریم بکات بە وێنە. پێشگریمان خۆی هەر ٢٥ فریم دەکات بە وێنە.

    بژاردەی f- فۆرماتی وێنەی هەناردەمان دیاری دەکا کە ئێمە گوتمان فۆرماتی هاوردەمان بەم جۆرە بێت image-%3d.png کە دەرئەنجام وێنەکان بەم فۆرماتە هاوردە دەکرێن image-001.png و image-002.png ؛ گەر بڵێنن image%4d.png فۆرماتەکان بەم شێوازەن image0001.png ، image0002.png ، image0003.png و …

  5. کراپ یان بڕینی فیلم:

    ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4
    

    لە خاڵی درێژایەتی ٢٠٠ و بەرزی ١٥٠ بە ئەندازەی چوارچێوەیەک بە درێژی ٦٤٠ و بەرزی ٤٨٠ ڕچاو بگرە و پاش بڕین هەناردەی بکە نێو output.mp4 .

  6. بەرگی ئاڵبۆمی دەنگ

    ffmpeg -stream_loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -b:a 192k -shortest output.mp4
    

    فەرمانی سەرەوە inputimage.jpg بە عینوانی هاوردەی یەکەم و inputaudio.mp3 بە عینوای هاوردەی دووهەم وەردەگرێت. بژاردەی c:v libx264- دەڵێت پیم خۆشە هەناردە ڤیدیۆ لە جۆری h264 بێت؛ بژاردەی c:a aac- هەناردەی دەنگەکەی لە جۆری aac بێت(واتە گەر بە فەرمانی ffprobe هەناردە تاقی بکەین ستریمیکی دەنگی لە جۆری aacــمان دەبێت).

    بژاردەی b:a- دەڵێت بیت ریتی دەنگ دەبێت لە جۆری ١٩٢k بێت.

  7. لکاندنی وێنە و لۆگۆ بە فیلم

    ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy output.mp4
    

    فەرمانی سەرەوە لۆگۆ دەخاتە ناوەڕاست فیلم.overlay=10:10 ئەم بژاردە لۆگۆ دەخاتە سووچی سەرەوە لای چەپ بە ئەندازەی ١٠ لە ١٠ پیکسێڵ .

    لە خوارەوە لای ڕاست بە ٥ پیکسێڵ مەودا

    overlay=main_w-overlay_w-5:main_h-overlay_h-5
    

    یان لای چەپ یان ٨ پیکسێڵ مەودا

    overlay=8:main_h-overlay_h
    

    … .

سەرچاوەکان : ffmpeg Documentation ~ websiteforstudents



  1. cross-platform ↩︎

  2. repository ↩︎