MP4 dosyasını bölme


34

Bir MP4 dosyasını bölmek için en hızlı ve en az kaynak tüketen yöntem nedir?

Ffmpeg'ı denedim ama bir hata oluştu:

$ ffmpeg -vcodec copy -ss 0 -t 00:10:00 -i /home/asafche/Videos/myVideos/MAH00124.MP4 /home/asafche/Videos/myVideos/eh.mp4
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5.1-1ubuntu1.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Mar 31 2011 18:53:20, gcc: 4.4.3

Seems stream 0 codec frame rate differs from container frame rate: 119.88 (120000/1001) -> 59.94 (60000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/asafche/Videos/myVideos/MAH00124.MP4':
  Duration: 00:15:35.96, start: 0.000000, bitrate: 5664 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 1280x720, 59.94 tbr, 59.94 tbn, 119.88 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16
Output #0, mp4, to '/home/asafche/Videos/myVideos/eh.mp4':
    Stream #0.0(und): Video: libx264, yuv420p, 1280x720, q=2-31, 90k tbn, 59.94 tbc
    Stream #0.1(und): Audio: 0x0000, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1

Neyi yanlış yapıyorum ve bir mp4 dosyasını nasıl düzgün bir şekilde bölerim?


Lütfen dosyayı ayırmanızın nedenini bize söyleyebilir misiniz? Dosyanın bölümlerini paylaşmak mı yoksa oynatmak mı? Ya da başka bir neden?
theTuxRacer

Bu, youtube'a yüklemek içindir, bu nedenle ikinci öneriniz - dosyanın parçalarını oynarsınız ...
Asaf Chertkoff 17:11

Yanıtlar:


62

Ffmpeg ile aşağıdaki komutu kullanarak dosyayı bölebilirsiniz:

ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss START -t LENGTH OUTFILE.mp4

START saniye cinsinden veya ss: dd: ss biçiminde konumlandırmaya başlıyorsa LENGTH, yığın cinsinden uzunluk veya ss: dd: ss biçimindedir.

Bu nedenle, videonuzun süresine bağlı olarak bu komutu birkaç kez çalıştırmanız gerekecek. Diyelim ki videonuz 31 dakika uzunluğunda ve bu yüzden 15 dakikalık parçalara bölünmesini istiyorsanız, nasıl çalıştıracağınız:

ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 0 -t 00:15:00 OUTFILE-1.mp4
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 00:15:00 -t 00:15:00 OUTFILE-2.mp4
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 00:30:00 -t 00:15:00 OUTFILE-3.mp4

Bunu otomatik olarak yapan bir python betiği var (yani video dosyasını alır, saniye cinsinden boyutta ve tek tek oynatılabilir video dosyaları oluşturur): http://icephoenix.us/notes-for-myself/auto-splitting-video -dosya-in-eşit parçalar-ile-ffmpeg-ve-piton /


Teşekkürler, ama bu konuda daha fazla yardıma ihtiyacım var. Cevabımda yaptığım düzenlemeye bakın.
Asaf Chertkoff

1
Bu benim için çalıştı: ffmpeg -ss 00:05:00 -t 00:16:00 -i largfile.MP4 -acodec kopyası -vcodec kopyası smallfile.MP4 birisi nedenini açıklayabilir mi?
Asaf Chertkoff

Burada biraz spekülasyon yapacağım, ancak kaynak dosyanız libx264'ün desteklemediği framerate ile kodlanmış gibi görünüyor, bu yüzden çerçeveleri atlıyor. Bunun iyi çalışması gerektiğini düşünüyorum, ancak bu nedenle ses ile ilgili bazı aksaklıklar olabilir.
Alex

olabilir. göreceksiniz ...
Asaf Chertkoff

1
Asaf'ın emri de benim için çalıştı. Kodek seçeneklerinin girdi dosyasından sonra gelmesi gerekecek gibi görünüyor.
daithib8

10

Bir gui kullanmayı tercih ederseniz, depolarda mevcut olan avidemux vardır. Kesim noktalarını tanımlamak bu şekilde çok daha kolaydır!

Seçim işaretleri, ses ve videoda "kopya" kullanarak dışa aktarılacak olan videonun parçasını tanımlar, yeniden kodlamayı engeller. Ayrıca kabı seçebilir veya değiştirebilirsiniz (avi, mp4, mkv, vs.).

Kameradaki bazı videolarda bir sürü kesinti yaptım ve anında oldu!


2
Avidemux, Ubuntu 16.04 depodan kaldırıldı.
naXa

5

İhtiyacınız ne olduğundan emin değilsiniz, ancak bunu bir terminale yazabilirsiniz: Bir terminali açmak için Ctrl+ Alt+T

split -b 4M file.mp4 part_file

Bu, dosyaları 4 megabaytlık parçalara böler. Dosyayı tekrar oluşturmak için, şunu yazın

cat part_file[a-c] > file.mp4

a-cBraketi yazdığımı fark ettim , çünkü split 3 dosya yarattı. senin durumunda daha fazlasını görmek zorunda kalabilirsin. Bir örnekle açıklayacağım.

$ ls -lh
-rwxr-xr-x 1 root        root        9.3M 2011-04-17 20:09 file.mp4

Bu, 9,3 MB'lik tek bir dosyam olduğunu gösteriyor. Bölmek için şunu yazarım:

$ split -b 2M file.mp4 part_file

Bölme işleminden sonra dosyaları şöyle alıyorum:

$ ls -lh
-rwxr-xr-x 1 root        root        9.3M 2011-04-17 20:09 file.mp4
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileaa
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileab
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileac
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_filead
-rw-r--r-- 1 thetuxracer thetuxracer 1.3M 2011-04-17 20:12 part_fileae

Dosya adına eklenen iki karaktere dikkat edin.

Dosyayı geri almak için:

$ cat part_filename[start-end][start-end] > file.mp4

3
Bu yöntem çok hızlı olacak ancak bireysel parçaları çalmanıza izin vermeyecektir. Bir video dosyasının bölümlerini ayıklamak için ffmpeg kullanabilirsiniz, ancak bunları bir bütün halinde yeniden bir araya getirmeden tek tek oynanabilen birçok küçük parçaya otomatik olarak bölmek için muhtemelen bir mp4 dosyası olan bir komut dosyası yazmanız gerekir. İsterseniz size bir örnek verebilirim, ancak sadece dosyayı hareket ettirmek için varsa, bu cevap iyidir.
Slipstream

@ Slipstream - doğru anladın - youtube için ayırmam gerekiyor. kameram MP4 üretiyor ancak bu süreleri bölmem gerekiyor çünkü 15 dakika sonra izin veriliyor.
Asaf Chertkoff

o zaman Alex'in cevabını aşağıda istiyorsun ...
Slipstream

5

Mkvtoolnix paketinden mkvmerge kullanın. Gibi bir şey kullanın

mkvmerge -o outputprefix --split 1G origfile.mp4

Bu, dosyanızı 1 GB'lik bloklara böler. Zaman göstergelerini de kullanabilirsiniz.


Daha önce hiç kullanmadım ama denedim: brilliant! Anında hız ve her şey okunabilir tutar. Teşekkürler!
tuk0z

Bir boyut belirtmek istiyorsanız bu özellikle yararlıdır. Teşekkürler!
BBQ Singular

0

Eğer bu bir MP4 part 2 ise, çok titiz bir yaklaşımla, dosyayı kodlayıcı / kod çözücü olmadan devam edebilirsiniz. Bu cevap, programlama geçmişi olan ve "" bozulmamış "" dosyayı tutmak isteyen onaltılı editörü olan insanlar içindir.

Dosyanın ilk kısmı bir mdat, ikincisi ise, örnekleri içeren kodlayıcıları bulmak için kullanılan kod çözücünün kullandığı meta verileri içeren bir moov'dur (örnekleri içeren kodlanmış görüntüler ve sesler). Sonra STCO, STTS, STSC vb. Var. Buna "atom" denir. Her bir parçanın kaçıklığı, uzunluğu vb. Ne olduğunu gösterir. Temiz bir iş çıkarsa, videonuzun birkaç örneğini ve farklı parçalarla farklı sürümler oluşturabilirsiniz. Dosya daha sonra oynatıcılarda oynatılabilir ve video web sitelerinde sindirilecektir. Kodlayıcıysanız, parçaları ve ofsetleri takip etmek için bir MP4 ayrıştırıcısı oluşturun veya mevcut olanı kullanın. Bu, format hakkında daha fazla bilgi edinmenize ve dosyaları otomatik olarak yeniden oluşturmanıza yardımcı olacaktır.


0

En kolay ve kusursuz yöntem MP4Box kullanmaktır:

  1. # apt install gpac
  2. $ MP4Box -split 15 /home/asafche/Videos/myVideos/MAH00124.MP4(parametre saniye cinsinden zamandır). Diğer bölünmüş olasılıklar için, örneğin boyuta göre bkz. Https://gpac.wp.imt.fr/mp4box/mp4box-documentation/ veyaMP4Box -h general

Birleştirme benzer şekilde basittir.


0

Videoları bölen ve daha fazlasını yapabilen başka bir açık kaynaklı GUI aracı da el freni

Örneğin, burada videomu 24.53'e (mm: ss) bölüp aynı zamanda sağ taraftaki çerçeveyi kırpıyorum: görüntü tanımını buraya girin

Çıktının önizlemesini kolayca görebilirsiniz - "Önizleme" düğmesiyle.

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.