Slijede razlike između dviju inačica stranice
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
ffmpeg [2019/01/05 20:18] jpetrovic |
ffmpeg [2023/06/19 18:11] (trenutno) |
||
---|---|---|---|
Redak 21: | Redak 21: | ||
</code> | </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 zadaju na sljedeći način: | + | 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 | * ffmpeg -f dshow -i video="EasyCamera":audio="Microphone (Conexant SmartAudio HD)" integrirana_kamera_i_mikrofon.mp4 | ||
Redak 33: | Redak 33: | ||
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: | 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 | * ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" desktop_i_audio.mp4 | ||
+ | |||
+ | **Za snimanje radne površine (desktopa) ****i zvuka iz zvučnika ili zvuka iz mikrofona **koristiti gdigrab filtar u kombinaciji s Screen capture recorderom za hvatanje zvuka: | ||
+ | * ffmpeg -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 -i desktop -f dshow -i audio="virtual-audio-capturer" -c:v libx264 -c:a aac -crf 20 desktop_i_zvucnici.mp4 | ||
+ | * Snima cijelu radnu površinu i zvuk koji izlazi kroz zvučnike računala | ||
+ | * ffmpeg -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 -i desktop -f dshow -i audio="Microphone (Conexant SmartAudio HD)" -c:v libx264 -c:a aac -crf 20 desktop_i_mikrofon.mp4 | ||
+ | * Snima cijelu radnu površinu i zvuk koji ulazi kroz zadani mikrofon (podesiti ime mikrofona!) | ||
+ | * ffmpeg.exe -f dshow -i audio="virtual-audio-capturer" -vn -c:a aac samo_audio_zvučnici.m4a | ||
+ | * Snima samo audio izvor (u ovom slučaju zvuk iz zvučnika) | ||
**Za izradu prezentacije/projekta gdje izvodite prezentaciju i snimate svoj glas **najbolje je kombinirati //gdigrab //filter i //Screen capture recorder//: | **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 | + | * ffmpeg -f dshow -i audio="Microphone (Conexant SmartAudio HD)" -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 -i desktop desktop_s_mikrofonom.mp4 |
- | * u godnjoj naredbi definirajte vlastiti mkrofon uređaj koji ste dobili u izlazu naredbe za popis dostupnih uređaja | + | * 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:** | **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 | * 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 | * vidi značenja parametara niže | ||
+ | |||
+ | **Za izradu prezentacije u kojoj želite vlastitu snimku (npr. s kamere laptopa) dodati na snimku radne površine**: | ||
+ | * ffmpeg -f gdigrab -framerate 25 -offset_x 0 -offset_y 0 -video_size 1920×1080 -i desktop -f dshow -i video="EasyCamera":audio="Microphone (Conexant SmartAudio HD)" -filter_complex "nullsrc=size=1280×720 [base]; [0:v] setpts=PTS-STARTPTS, scale=1280×720 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=320×240 [upperright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=940:y=20 " -c:v libx264 -y output.mkv | ||
+ | * Pretpostavke ove naredbe su da snimate cijelu radnu površinu dimenzija 1920×1080 (-video_size) koja počinje na koordinati (0,0)=(-offset_x, -offset_y) s 25 sličica u sekundi (-framerate), da su imena uređaja za video i zvuk konfigurirana u //-i video="EasyCamera":audio="Microphone (Conexant SmartAudio HD)"//, da želite izlaznu snimku veličine 1280×720 (nullsrc=size=) i da snimku sebe želite skalirati na veličinu 320×240 (//scale=320×240 [upperright]//) i pozicionirati počevši od koordinate (940,20) (//overlay=shortest=1:x=940:y=20//) . | ||
**Dodatne napomene i pojašnjenja:** | **Dodatne napomene i pojašnjenja:** | ||
Redak 46: | Redak 58: | ||
* Snimanje se prekida pritiskom tipke q dok je komandna linija odabrana kao aktivni prozor | * 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 | * 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. | + | * 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 h264 kodek u 1280×720 rezoluciji. |
**<font 16px/inherit;;inherit;;inherit>2. Podešavanje parametara snimanja:</font>** | **<font 16px/inherit;;inherit;;inherit>2. Podešavanje parametara snimanja:</font>** | ||
Redak 52: | Redak 64: | ||
* **-c:a aac** = audio kodek. Preporučeno aac 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. | * **-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. | + | * **-crf 22 ** = kvaliteta videa za h264 kodiranje (zadaje se umjesto bitratea). Manje je bolje za kvalitetu slike, 22 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. | * **-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. | * **-rtbufsize 1G** = buffer. Više je bolje, pogotovo ako je računalo nedovoljno jako za real-time enkoding videa. | ||
Redak 76: | Redak 88: | ||
**<font 16px/inherit;;inherit;;inherit>4. Konkatenacija (nadovezivanje) videa</font>** | **<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: | + | 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: | + | Sadržaj //mylist.txt://<file> |
+ | # Popis fajlova za konkatenaciju: | ||
+ | file 'C:/video_files/pocetak.mp4' | ||
+ | file 'C:/video_files/sredina.mp4' | ||
+ | file 'C:/video_files/kraj.mp4' | ||
+ | </file> | ||
+ | Datoteku s popisom pohraniti u isti direktorij gdje je i //ffmpeg.exe //i pozvati naredbu: | ||
* ffmpeg -f concat -safe 0 -i mylist.txt -c copy izlaz | * ffmpeg -f concat -safe 0 -i mylist.txt -c copy izlaz | ||
[[https://trac.ffmpeg.org/wiki/Concatenate|Još mogućnosti]]. | [[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>** | + | **<font 16px/inherit;;inherit;;inherit>5. Uključivanje 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 | + | * ffmpeg -i snimka_bez_titlova.mp4 -i titlovi.vtt -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/… | ||
+ | * Naredba bi trebala raditi i za druge formate titlova (//.srt//). Ako to nije slučaj, prebacite titlove u drugi format putem besplatnih web alata poput [[https://subtitletools.com/convert-to-vtt-online|https://subtitletools.com/convert-to-vtt-online]] i ponovno pokušajte iskoristiti naredbu iznad. | ||