60 saniye uzunluğundaki bir videoyu hedef veya maksimum 10 MB boyutunda kodlamak istiyorum .
Bildiğim iki yaklaşım var. Biri FFMPEG-Wiki'de, diğeri de dokümantasyonda buldum. Ne yazık ki, hangi yöntemi kullanacağım hakkında bir açıklama bulamadım.
Bu yöntemlerden herhangi biri önerilir mi? Değilse, her yöntemin üst / alt tarafları nelerdir?
1) Bit hızını hesaplayın ve ffmpeg-wiki'de açıklandığı gibi videonun uzunluğuna uyacak şekilde ayarlayın
(10 MB * 8192 [MB'yi kilobit'e dönüştürür]) / 60 saniye = ~ 1365 kbits / s toplam bit hızı 1365k - 128k (istenen ses bit hızı) = 1237k video bit hızı
ffmpeg -y -i input -c:v copy -preset medium -b:v 1237k -pass 1 -c:a copy -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 1237k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
2) -fs
Parametreyi kullanın ve ffmpeg'in çözmesine izin verin.
ffmpeg -i input -c:v copy -c:a copy -preset medium -crf 23 -fs 10485760 output.mp4
libx264
olarak da kullanılmalıdırc:v
. Örnekte , kullanıldığıfs
için videonun kod dönüştürmesini yapmıyorsunuz-c:v copy
. Yani,preset
vecrf
ayrıca herhangi bir etkisi yoktur.