Slijede razlike između dviju inačica stranice
ffmpeg [2019/01/06 18:44] jpetrovic |
ffmpeg [2023/06/19 18:11] |
||
---|---|---|---|
Redak 1: | Redak 1: | ||
- | ===== Korisne naredbe za ffmpeg (Windows inačica za AV izvore) ===== | ||
- | |||
- | <font 16px/inherit;;inherit;;inherit>**1. Odabir video i audio izvora**</font> | ||
- | |||
- | ffmpeg omogućava definiranje jednog ili više video (npr. dekstop, integrirana kamera, USB kamera, HDMI kamera) i jednog ili više audio (npr. izlazni zvuk računala, mikrofonski ulaz, integrirani mikrofon, USB mikrofon) izvora te njihovo mapiranje na jedan ili više izlaza (npr. dvije datoteke s različitom kombinacijom AV izvora i livestream port). Za listanje dostupnih video i audio izvora pokrenuti naredbu: | ||
- | |||
- | * ffmpeg -list_devices true -f dshow -i dummy | ||
- | |||
- | <code> | ||
- | [dshow @ 000001ffd04ea040] DirectShow video devices (some may be both video and audio devices) | ||
- | [dshow @ 000001ffd04ea040] "EasyCamera" \\ | ||
- | [dshow @ 000001ffd04ea040] Alternative name "@device_pnp_\?usb#vid_174f&pid_2408&mi_00#6&37110e07&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" \\ | ||
- | [dshow @ 000001ffd04ea040] "screen-capture-recorder" \\ | ||
- | [dshow @ 000001ffd04ea040] Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA69364-2C8A-4AE6-A561-56E4B5044439}" \\ | ||
- | [dshow @ 000001ffd04ea040] DirectShow audio devices \\ | ||
- | [dshow @ 000001ffd04ea040] "Microphone (Conexant SmartAudio HD)" \\ | ||
- | [dshow @ 000001ffd04ea040] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{C8BB87C9-7326-4DD9-81CD-E56BAB80DE91}" \\ | ||
- | [dshow @ 000001ffd04ea040] "virtual-audio-capturer" \\ | ||
- | [dshow @ 000001ffd04ea040] Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927E935}" \\ | ||
- | dummy: Immediate exit requested | ||
- | </code> | ||
- | |||
- | U izlazu su unutar navodnika navedeni AV izvori koje je moguće snimati ("EasyCamera", "screen-capture-recorder", "Microphone (Conexant SmartAudio HD)", "virtual-audio-capturer"). Izvori se za snimanje zadaju na sljedeći način: | ||
- | |||
- | * ffmpeg -f dshow -i video="EasyCamera":audio="Microphone (Conexant SmartAudio HD)" integrirana_kamera_i_mikrofon.mp4 | ||
- | * (u //video=// i //audio= //moguće je zadati bilo koje unose dobivene iz naredbe za listanje dostupnih izvora) | ||
- | * //integrirana_kamera_i_mikrofon.mp4// je ime izlazne datoteke | ||
- | * snimanje se prekida pritiskom tipke q dok je komandna linija odabrana kao aktivni prozor | ||
- | |||
- | **Za snimanje radne površine (desktopa) **koristiti gdigrab filtar: | ||
- | * ffmpeg -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 -i desktop desktop_bez_zvuka.mp4 | ||
- | * //-offset_x //i //-offset_y //koristite ako morate ograničiti prostor snimanja, npr. zbog korištenja više zaslona -offset_x postavite na vrijednost 1280 (nakon prvog zaslona) | ||
- | ili instalirati [[http://sourceforge.net/projects/screencapturer/|Screen capture recorder]] (koji omogućava i korištenje izlaznog audia računala kao audio input). Naredba koja uz instalirani Screen capture recorder snima desktop i **izlazni (a ne ulazni iz mikrofona)** zvuk računala: | ||
- | * ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" desktop_i_audio.mp4 | ||
- | |||
- | **Za izradu prezentacije/projekta gdje izvodite prezentaciju i snimate svoj glas **najbolje je kombinirati //gdigrab //filter i //Screen capture recorder//: | ||
- | * ffmpeg -f dshow -i audio="Microphone (Conexant SmartAudio HD)" -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 desktop_s_mikrofonom.mp4 | ||
- | * u godnjoj naredbi umjesto upisanog (Microphone (Conexant SmartAudio HD)) definirajte vlastiti mkrofon uređaj koji ste dobili u izlazu naredbe za popis dostupnih uređaja | ||
- | |||
- | **odnosno istu naredbu uz dodatke parametre:** | ||
- | * ffmpeg -rtbufsize 50000k -f dshow -i audio="Microphone (Conexant SmartAudio HD)" -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 -i desktop -c:v libx264 -crf 20 -vf scale=1280:720 -r 25 -c:a aac -pix_fmt yuv420p -profile:v baseline -level 3.0 projekt.mp4 | ||
- | * vidi značenja parametara niže | ||
- | |||
- | **Dodatne napomene i pojašnjenja:** | ||
- | * Parametri definirani prije -i zastavice odnose se na izvor definiran tom -i zastavicom | ||
- | * Snimanje se prekida pritiskom tipke q dok je komandna linija odabrana kao aktivni prozor | ||
- | * Parametri definirani nakon poslijednjeg izvora (-i device_name) definiraju svojstva izlaza | ||
- | * npr. naredbom //ffmpeg -f gdigrab -framerate 25 -video_size 1920×1080 -i desktop -framerate 20 -c:v libx264 -vf scale=1280×720 desktop.mp// definira se da video ulaz šalje 25 FPS u 1920×1080 rezoluciji, a snimka će sadržavati 20 FPS enkodirano u x264 kodek u 1280×720 rezoluciji. | ||
- | |||
- | **<font 16px/inherit;;inherit;;inherit>2. Podešavanje parametara snimanja:</font>** | ||
- | * **-c:v libx264** = video kodek. Preporučeno libx264 jer je raširen i ima efikasnu kompresiju. | ||
- | * **-c:a aac** = audio kodek. Preporučeno aac jer je raširen i ima efikasnu kompresiju. | ||
- | * **-r 25** = framerate. Više je bolje, 25 je ok za većinu snimki, a desktop može i manje. | ||
- | * **-crf 20 ** = kvaliteta videa za h264 kodiranje (zadaje se umjesto bitratea). Manje je bolje za kvalitetu slike, 20 je dovoljno za većinu snimki. | ||
- | * **-vf scale=1280×720** = rezolucija izlaznog videa. Više je bolje za kvalitetu slike ako snimani izvor to podržava. 1280:720 (720p ili HD ready) je dovoljno za većinu snimki. | ||
- | * **-rtbufsize 1G** = buffer. Više je bolje, pogotovo ako je računalo nedovoljno jako za real-time enkoding videa. | ||
- | * **-pix_fmt yuv420p ** = YUV planar color space with 4:2:0 chroma subsampling. Za kompatibilnost s manje naprednim video playerima (QuickTime, Windows Media Player, …). Obavezno koristiti! | ||
- | * **-profile:v baseline -level 3.0** = h264 enkoding profil relativno niske kompleksnosti. Za kompatibilnost sa manje naprednim i procesorski slabijim uređajima. | ||
- | * [[https://trac.ffmpeg.org/wiki/Encode/H.264|Detalji postavki za h264 enkodiranje]]. | ||
- | |||
- | **<font 16px/inherit;;inherit;;inherit>3. Trimanje (skraćivanje) videa</font>** | ||
- | |||
- | Trimanje početka videa: | ||
- | |||
- | * ffmpeg -ss 00:01:15 -i snimka.mp4 -c copy trimana_snimka.mp4 (izbjegava reenkodiranje, ali ne mora izbaciti točno prvih 00:01:15 nego približno toliko, ovisno o keyframeovima) | ||
- | * ffmpeg -i snimka.mp4 -ss 00:01:15 -c:v libx264 -crf 19 -c:a aac trimana_snimka.mp4 (reenkodira snimku, ali izbacuje točno uvodnih 00:01:15) | ||
- | |||
- | Trimanje kraja videa: | ||
- | |||
- | * ffmpeg -i snimka.mp4 -c copy -t 00:01:15 trimana_snimka.mp4 (izbjegava reenkodiranje, nova snimka traje od početka do 00:01:15) | ||
- | |||
- | Kombinacija: | ||
- | |||
- | * ffmpeg -i snimka.mp4 -ss 00:01:00 -t 00:05:00 -c:v libx264 -crf 19 -c:a aac trimana_snimka.mp4 (reenkodira snimku, nova traje 5 minuta, početak joj ne nakon 1. minute stare snimke) | ||
- | |||
- | **<font 16px/inherit;;inherit;;inherit>4. Konkatenacija (nadovezivanje) videa</font>** | ||
- | |||
- | Sve datoteke moraju koristiti isti video i isti audio kodek. Napraviti u mylist.txt datoteci popis datoteka s apsolutnim putanjama: | ||
- | |||
- | * # Popis fajlova za konkatenaciju: | ||
- | * file 'C:/video_files/pocetak.mp4' | ||
- | * file 'C:/video_files/sredina.mp4' | ||
- | * file 'C:/video_files/kraj.mp4' | ||
- | |||
- | datotteku s popisom pohraniti u isti folder gjde je i ffmpeg.exe i pozvati naredbu: | ||
- | |||
- | * ffmpeg -f concat -safe 0 -i mylist.txt -c copy izlaz | ||
- | |||
- | [[https://trac.ffmpeg.org/wiki/Concatenate|Još mogućnosti]]. | ||
- | |||
- | **<font 16px/inherit;;inherit;;inherit>5. Uključivanje .srt titlova u mp4 container (//soft subtitles//):</font>** | ||
- | * ffmpeg -i infile.mp4 -i infile.srt -c:v copy -c:a copy -c:s mov_text snimka_s_titlovima.mp4 | ||
- | * u rezultantnoj snimci provjerite dostupnost titlova tako da ju otvorite u VLC player medijskom izvođaču i uključite titlove opcijom Subtitle/Sub track/... | ||
- | |||