22 Temmuz 2020 Çarşamba

ffmpeg Komutu

Aşağıda ffmpeg ile ilgili notlarım var. 19 ffmpeg commands for all needs sayfasına da bakılabilir.

Ses Kavramları
Ses için şu kavramları bilmek gerekir. örnekleme frekansı, kanal sayısı, bit satısı ve kullanılan codec.

Video Kavramları
Video Kavramları yazına taşıdım

Aspect Oranı
Eski VGA ekranlar için şöyle.
|-------------------|----------------------|--------------|
|                   | Resolution           | aspect ratio |
|-------------------|----------------------|--------------|
| (pre-VGA madness) | various              | various      |
| VGA               | 640*480              | 4:3          |
| Super VGA         | 800*600              | 4:3          |
| Super VGA         | 1024*768             | 4:3          |
| Super VGA         | 1152*864             | 4:3          |
| Super VGA         | 1280*1024 <<<<<      | 5:4 <<<<<    |
| Super VGA         | 1600*1200            | 4:3          |
| Widescreen        | 1920*1080 and others | 16:9         |
|-------------------|----------------------|--------------|
Yeni ekranlar için aspect oranı şöyle.
The availability of inexpensive LCD monitors has made the 5:4 aspect ratio resolution of 1280 × 1024 more popular for desktop usage during the first decade of the 21st century.
The 1280 × 1024 resolution became popular because at 24 bit/px color depth it fit well into 4 megabytes of video RAM. At the time, memory was extremely expensive. Using 1280 × 1024 at 24-bit color depth allowed using 3.75 MB of video RAM, fitting nicely with VRAM chip sizes which were available at the time (4 MB): (1280 × 1024) px × 24 bit/px ÷ 8 bit/byte ÷ 2^20 byte/MB = 3.75 MB
Kurulum
Şuna benzer bir dizinde bulunur
C:\ffmpegtool\bin\ffmpeg.exe"
Seçenekler
Seçenekler şu başlıklar altında
5.1 Stream specifiers : Some options are applied per-stream
5.2 Generic options : These options are shared amongst the ff* tools.
5.3 AVOptions : These options are provided directly by the libavformat, libavdevice and libavcodec libraries
5.4 Main options
5.5 Video Options
5.6 Advanced Video options
5.7 Audio Options
5.8 Advanced Audio options
5.9 Subtitle options
5.10 Advanced Subtitle options
5.11 Advanced options

Main Options

-b seçeneği
Çıktı vidyodaki bitrate değerini belirtir.
-b:v 1500k
-f seçeneği
File Format Seçeneği yazısına taşıdım.

-filter_complex

Örnek
mkv ve mp3 dosyalarını birleştirerek yeni bir mkv üretmek için şöyle yaparız.
ffmpeg -i "temp/1561246948349.mkv" -i "music/happy.mp3" -vcodec copy 
  -filter_complex amix -map 0:v -map 0:a -map 1:a -shortest -b:a 144k 
  "finished/2019-06-22/1561246948349/output.mkv"
-i input seçeneği
url olarak geçiyor ancak url dışında /dev ile device ta belirtilebilir. Şöyle yaparız.
ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/ -t 5 test.mp4
-t seçeneği - saniye
Duration'ı belirtir. -i'den önce kullanılırsa kaç saniye okuma yapılacağını, sonra kullanılırsa kaç saniye yazma yapılacağını belirtir.

-target type seçeneği - yeni format tipi
ffmpeg'in  en çok kullanıldığı alanlardan birisi dosyayı başka bir formata çevirmek.

-i seçeneği ile input dosya ismi veriliyor.
-target ile yeni format tipi veriliyor.
ffmpeg -i myfile.avi -target mp4 newfile.mp4
-ss seçeneği - saniye 
Başlangıç saniyesini verir. 5. dakikadan itibaren 60 saniyelik bir kopyalama yapmak için şöyle yaparız. -ss seçeneği -i seçeneğinden önce gelmelidir.
ffmpeg -ss 300 -i "movie.flv" -t 60 -c:v copy -c:a copy "$2.$start.mp4"
-vcodec seçeneği
Çıktıda kullanılacak video kodek belirtirilir. Eğer aynen kalsın isteniyorsa copy yapılır.
ffpmpeg -i <input_file> ... -acodec copy ... -vcodec copy ...
Bu seçenek -c:v ile aynı anlama geliyor. -c bir stream specifier. Yani şu iki komut aynı şey.
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mkv

ffmpeg -i input.mp4 -vcodec copy -acodec copy output.mkv
-y seçeneği
Sormadan çıktı dosyasının üzerine yazar.
ffmpeg -i input2.mp4 -y output2.avi
Advanced Options
-re seçeneği - dosyadan stream için kullanılır
-re sanırım realtime anlamına geliyor. Dosyadan stream için şöyle yapılır.
ffmpeg -re -i sample.mp4 -c copy -f flv rtmp://192.168.1.34:1936/live/myStream
-thread
Seçilen codec'e göre thread sayısı anlam kazanıyor. Dosyaları birleştirmek için şöyle yaparız. -scodec subtitle codec anlamına gelir.
ffmpeg -threads 4 -i data0001.ts -i data0002.ts -i data0003.ts -c copy -scodec
  copy video.ts
Video Options
ffmpeg Video Options yazısına taşıdım.

Audio Options
ffmpeg Audio Options yazısına taşıdım

1 yorum: