Ini -1akan memberitahu ffmpeg untuk secara otomatis memilih ketinggian yang benar dalam kaitannya dengan lebar yang disediakan untuk mempertahankan rasio aspek. -1dapat juga digunakan untuk lebar jika Anda memberikan tinggi yang diberikan.
Salah satu kelemahan dari skala ketika menggunakan libx264adalah bahwa encoder ini memerlukan bahkan nilai-nilai dan skala dapat secara otomatis memilih nilai aneh yang mengakibatkan kesalahan: width or height not divisible by 2. Anda dapat menentukan skala untuk memilih nilai genap untuk ketinggian tertentu (720 dalam contoh ini):
scale="trunc(oh*a/2)*2:720"
... atau lebar tertentu (1280 dalam contoh ini):
scale="1280:trunc(ow/a/2)*2"
Perhatikan bahwa build ffmpeg Anda bisa mengeluhkan tidak mengenali -catau -filteropsi. Mungkin juga tidak mendukung scale. Dalam hal ini Anda harus menggunakan ffmpeg yang lebih baru, yang dapat Anda unduh sebagai build statis, atau kompilasi sendiri .
Saya mencoba ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv(dalam versi ffmpeg 0.8.6-6: 0.8.6-0ubuntu0.12.10.1) tetapi mendapatkan kesalahanUnrecognized option 'filter:v'
doug65536
6
Setelah menggali halaman manual untuk ffmpeg beberapa kali saya menemukan bahwa alih-alih -filter:v, opsi tampaknya telah diubah menjadi -vf.
doug65536
2
@ doug65536 -filter:vdan -vfkeduanya baik-baik saja. Versi Ubuntu yang Anda gunakan rusak dan ketinggalan zaman — ini bukan versi FFmpeg ffmpeg, tetapi biner yang disediakan oleh Libav (garpu FFmpeg) dengan nama yang sama.
slhck
1
@ MightyPork mungkin build ffmpeg Anda sudah usang - masalah apa yang terjadi? Bagaimanapun, ini benar-benar membantu saya (dengan ffmpeg version 2.4.10) mengurangi ukuran beberapa video besar untuk membebaskan ruang - terima kasih!
Wilf
4
'-c' adalah kependekan dari -codec, ': a' menentukan aliran audio, 'salin' menentukan salinan codec, yang menyalin aliran (dalam hal ini audio) tanpa reencoding. Pada dasarnya stream audio akan melewati. Ini biasa terjadi ketika Anda hanya memanipulasi aliran video.
jimhark
14
Saya menggunakan perintah berikut untuk melakukan rescaling untuk video dan gambar. Untuk lebar dan tinggi tetap -
ffmpeg
mungkin sudah ditinggalkan, lihat di sini dan di siniffmpeg
" lama dari garpu Libav, bukanffmpeg
dari FFmpeg yang dikembalikan pada 15,04.Jawaban:
Contoh paling mendasar adalah ini:
Menggunakan satu
scale
filter yang akan memberikan lebih banyak fleksibilitas:Ini
-1
akan memberitahu ffmpeg untuk secara otomatis memilih ketinggian yang benar dalam kaitannya dengan lebar yang disediakan untuk mempertahankan rasio aspek.-1
dapat juga digunakan untuk lebar jika Anda memberikan tinggi yang diberikan.Salah satu kelemahan dari skala ketika menggunakan
libx264
adalah bahwa encoder ini memerlukan bahkan nilai-nilai dan skala dapat secara otomatis memilih nilai aneh yang mengakibatkan kesalahan:width or height not divisible by 2
. Anda dapat menentukan skala untuk memilih nilai genap untuk ketinggian tertentu (720 dalam contoh ini):... atau lebar tertentu (1280 dalam contoh ini):
Perhatikan bahwa build ffmpeg Anda bisa mengeluhkan tidak mengenali
-c
atau-filter
opsi. Mungkin juga tidak mendukungscale
. Dalam hal ini Anda harus menggunakan ffmpeg yang lebih baru, yang dapat Anda unduh sebagai build statis, atau kompilasi sendiri .sumber
ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv
(dalam versi ffmpeg 0.8.6-6: 0.8.6-0ubuntu0.12.10.1) tetapi mendapatkan kesalahanUnrecognized option 'filter:v'
-filter:v
, opsi tampaknya telah diubah menjadi-vf
.-filter:v
dan-vf
keduanya baik-baik saja. Versi Ubuntu yang Anda gunakan rusak dan ketinggalan zaman — ini bukan versi FFmpegffmpeg
, tetapi biner yang disediakan oleh Libav (garpu FFmpeg) dengan nama yang sama.ffmpeg version 2.4.10
) mengurangi ukuran beberapa video besar untuk membebaskan ruang - terima kasih!Saya menggunakan perintah berikut untuk melakukan rescaling untuk video dan gambar. Untuk lebar dan tinggi tetap -
dan jika Anda ingin mempertahankan rasio aspek, beri tinggi sebagai -1 dan itu akan secara otomatis mengubah ukuran berdasarkan lebar -
Jika Anda ingin skala berdasarkan ukuran input misalnya. katakanlah kurangi lebar / tinggi setengah yang bisa Anda lakukan-
CATATAN :
Build statis dapat diunduh dari - https://johnvansickle.com/ffmpeg/
Dokumentasi: https://ffmpeg.org/ffmpeg.html#filter_005foption
sumber