FFMPEG MP4'ü Aynı Kalitede Bölme


51

Büyük bir MP4 dosyam var. Daha küçük dosyalara bölmeye çalışıyorum.

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

-Sameq kullanmak aynı kalite ayarlarını koruyacağını sanıyordum. Ancak, bunun ne yaptığını anlamamalıyım.

Bölünmüş dosyaları ile aynı kalitede (ses / video) ve sıkıştırma tutmak için arıyorum. Ancak, bu ayar split dosyaları çok daha büyük yapar.

Aynı kalite / boyut oranını korurken, bölünmüş dosyalarda aynı kaliteyi ve nitelikleri korumak için hangi bayrak (ları) belirlemem gerekir?

Örneğin, orijinal dosyam yaklaşık 12 GB ise ve 1920171080 bit hızına sahip 10617kbps ve 23 kare / sn ve 6 kanal ses ile 317kbps kare hızda ise, bölünmüş dosyaların bu boyutun sadece üçte biri olmasını isterim ( eğer üç parçaya bölersem).


3
Bunu okuyan herkes için FYI: Kullanmayın -sameq, "aynı kalite" anlamına gelmez .
Zaz

Yanıtlar:


81

Videoyu yeniden eklemeye gerek duymadan bölmek istiyorsanız, copyses ve video için codec bileşenini kullanın . Bunu dene:

ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4

Bunun sadece ilk bölünmeyi yarattığını unutmayın. Bir diğeri ile başlayan bir komutla yapılabilir ffmpeg -ss 00:50:00.

Bu tek bir komutla yapılabilir:

ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 -ss 00:50:00 -c copy smallfile2.mp4

Bu, 50 dakika içinde largefile.mp4 videosuna biten smallfile1.mp4, 50filde başlayan ve largefile.mp4 sonunda biten smallfile2.mp4 oluşturur.


2
Bu yöntemi kullanarak bir mp4 dosyasında, oluşturulan her dosyanın ilk iki saniyesini donmuş bir kare olarak alıyorum (ses normal olarak çalıyor). Bunun bilinen bir nedeni var mı?
Ron Harlev

Bir böcek gibi geliyor. En son ffmpeg'ye güncelleyin.
Robert

@Robert 2010'dan beri birçok kez güncellendi. Teşekkürler.
fideli

@RonHarlev Bu, şu anda beklenen davranış. Yeniden kodlama olmadan, videoları yalnızca "ana kareler" de kesebilirsiniz. Anahtar kareler arasındaki kareler tam bir görüntü oluşturmak için kendi başlarına yeterli bilgi taşımıyor. Bakınız: trac.ffmpeg.org/wiki/Seeking#Seekingwhiledoingacodeccopy
Philip Thrasher

3

Bir Alternatif bunu yapmanın yoludur:

// create a 2-min clip
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

/**
* -i  input file
* -ss start time in seconds or in hh:mm:ss
* -to end time in seconds or in hh:mm:ss
* -c codec to use 
*/

-c copyOrijinal ses + video akışlarını çıktıya kopyalamak için kullandığımız için dosyanın kalitesi aynı kalır .

Referans, Sık kullanılan FFmpeg komutlarının listesi: DigitalFortress

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.