MP3'ü ilk 30 saniyeye kırp


103

Orijinal Soru

Önizleme olarak kullanılmak üzere mevcut bir MP3 dosyasından yeni (tamamen geçerli) bir MP3 dosyası oluşturabilmek istiyorum - satın almadan önce deneyin stili. Yeni dosya , parçanın yalnızca ilk n saniyesini içermelidir .

Şimdi, dosyayı teslim ederken n saniyede "akışı kesebileceğimi" (bit hızı ve başlık boyutundan hesaplayarak) biliyorum , ancak bu biraz kirli ve bir VBR yolundaki gerçek bir PITA. Uygun bir MP3 dosyası oluşturabilmek istiyorum.

Herhangi bir fikri olan var mı?

Yanıtlar

Hem mp3splitve ffmpegikisi de iyi çözümleridir. Yaygın olarak linux sunucularında kurulu olduğu ve aynı zamanda windows için de kolayca erişilebilir olduğu için ffmpeg'i seçtim . İşte ffmpeg ile önizlemeler oluşturmak için daha iyi komut satırı parametreleri

  • -t <seconds> belirtilen saniye sayısından sonra doğrayın
  • -y dosyanın üzerine yazmaya zorla
  • -ab <bitrate>bit hızı ayarla ör. -ab 96k
  • -ar <rate Hz>örnekleme oranını ayarlayın, örn. -ar 22050 , 22.05kHz için
  • -map_meta_data <outfile>:<infile> parça meta verilerini dosyadan çıktı dosyasına kopyala

-ab ve -ar'ı ayarlamak yerine, orijinal parça ayarlarını Tim Farley'in önerdiği gibi kopyalayabilirsiniz:

  • -acodec copy

Bunu bu özel amaç için kullanmadım ama bahse girerim ffmpeg bunu yapabilir.
grapefrukt

Sadece bir düşünce: Orijinal şarkının başlangıcını atlamak isteyebilirsiniz. Diyelim ki şarkının üçte birinden başlayarak 30 saniyelik parçayı kullanabilirsiniz . Örneğin için - bu sadece bir "sahne kurma" parçası gibi bazı şarkıların, ilk 30 saniye çok teşekkür söylemez Pink Floyd 'ın Çılgın Diamond hakkında Shine .
Tomas Sedovic

Aynı not olarak, CentOS üzerinde ffmpeg, mptsplit ve mp3cutter ile gerçekten kötü bir zaman geçirdim, hepsi "Header Missing" i rapor ediyor. Bu yüzden, dosya boyutuna göre kesmek için MP3 Sınıfı ve biraz matematik dersi almak zorunda kaldım.
Gardner

Ffmpeg'in bunu yapabileceğini bilmiyordum. Teşekkür ederim.
Sridhar Sarnobat

Yanıtlar:


142

Ayrıca ffmpeg'i de öneriyorum, ancak John Boker tarafından önerilen komut satırının istenmeyen bir yan etkisi var: dosyayı varsayılan bit hızına yeniden kodluyor (en azından burada sahip olduğum sürümde 64 kb / sn). Bu, müşterilerinize ses dosyalarınızın kalitesi hakkında yanlış bir izlenim verebilir ve ayrıca yapılması daha uzun sürer.

İşte kod dönüştürmeden 30 saniyeye dilimleyecek bir komut satırı:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

-Acodec anahtarı, ffmpeg'e kod dönüştürme yapmayan özel "kopya" codec bileşenini kullanmasını söyler. Şimşek hızında.

NOT: Komut, Oben Sonne'nin yorumuna göre güncellendi


21
Son ffmpegsürümler (en azından 0.10.6'dan beri), seçenekleri konuma göre farklı yorumlamaktadır. Girişle ilgili seçenekler önce görünmeli -i ...ve çıktıyla ilgili seçenekler sonra görünmelidir -i .... Bu ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3, şimdi doğru cevap olacağı anlamına gelir .
Oben Sonne

15 saniyelik giriş dosyasından 30 saniyelik ses çıkarabilir miyim, bu, dosya daha sonra 30 saniye sonra 30 saniye ayıklanır, ancak dosya 15 saniye ise tekrarlayın ve 30 saniyeyi tamamlayın.
Girish Patidar

6
Başlama zamanını (ofset) ayarlamak isterseniz kullanabilirsiniz -ss hh:mm:ss[.xxx]. Örnek: 00h 00m 15s 500ms'den başlayarak 30 saniyeyeffmpeg -t 30 -ss 00:00:15.500 -i inputfile.mp3 -acodec copy outputfile.mp3 dilimleyecektir .
patryk.beza

1
Bazı nedenlerden dolayı yukarıdaki komut benim için işe yaramadı ama eğer değiştirirsem: ffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3o zaman mükemmel çalışıyor
Krishnendu

Benim için -t ve -s seçenekleri 2 komutta ayrı ayrı kullanılmalıdır. Ama işe yarıyor, teşekkürler!
Yan King Yin

57

İlk 30 saniyeyi KALDIRMAK (ve kalanı saklamak) istiyorsanız, bunu kullanın:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3


12

Bu komut da mükemmel çalışıyor. Müzik dosyalarımı 20 saniyeden 40 saniyeye düşürdüm.

-y: çıktı dosyasını üzerine yazmaya zorlar.

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3

1
Mükemmel! Bunu paylaştığın için teşekkürler
HerrimanCoder

11

mp3cut kullanabilirsiniz:

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0

Ubuntu yani sadece, repo içinde bu var: sudo apt-get install cutmp3.


6

Mp3Splt'i denemek isteyebilirsiniz .

Daha önce mp3splt.exe win32 işlemini basitçe saran bir C # hizmetinde kullandım. Linux / PHP senaryonuzda da benzer bir şey yapılabileceğini varsayıyorum.


2
MP3Split başarıyla mp3 kesimi için kullanıldı
Freshblood

0

Aynısını yaparken bir hata aldım

Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters     ?): Invalid argumentStream mapping:

Benim için düzelt:

ffmpeg -ss 00:02:43.00 -t 00:00:10 -i input.mp3 -codec:a libmp3lame out.mp3

0

medipack , sarmalayıcı olarak çok basit bir komut satırı uygulamasıdır ffmpeg.

Bu komutları kullanarak videonuzu kırpmayı başarabilirsiniz:

medipack trim input.mp3 -s 00:00 -e 00:30 -o output.mp3
medipack trim input.mp3 -s 00:00 -t 00:30 -o output.mp3

trim alt komutunun seçeneklerini şu şekilde görüntüleyebilirsiniz:

srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]

positional arguments:
  inp                   input video file ex: input.mp4

optional arguments:
  -h, --help            show this help message and exit
  -s START, --start START
                        start time for cuting in format hh:mm:ss or mm:ss
  -e END, --end END     end time for cuting in format hh:mm:ss or mm:ss
  -t TIME, --time TIME  clip duration in format hh:mm:ss or mm:ss
  -o OUTPUT, --output OUTPUT

kullanarak diğer seçenekleri de keşfedebilirsiniz medipack -h

srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...

positional arguments:
  {trim,crop,resize,extract}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version number

https://github.com/srbcheema1/medipack adresini ziyaret edebilir ve README'deki örnekleri inceleyebilirsiniz.


1
Bu paketleyicinin avantajı nedir? Çünkü daha basit görünmüyorffmpeg -i input -ss <start time> -to <end time> output
2019,

-tAlternatif olarak kullanılabilecek bir seçenek ekledim , -ebunun anlamı önümüzdeki 4 dakika 36 saniyelik videoyu kırpacağımı varsayalım, bu süreleri manuel olarak eklemek için endişelenmeme gerek yok, ayrıca videoları kırparken benzer kolaylık sağladım, örneklere bakın README'de CLI'sinin neden basit ffmpeg'den daha kolay olduğunu anlayacaksınız. O kadar güçlü değil ama normal insan için kullanışlı bir araç olduğunu kabul ediyorum.
srbcheema1

2
ffmpegmuhtemelen -toyaptığınız şey olan bir seçeneğe sahiptir -t.
llogan

ürün alt seçeneği altında BENİOKU'da belirtilen ürün% yaş seçeneği ne durumda, bu da mevcut mu? Bu aracı bana birkaç dolar ödeyen biri tarafından talep üzerine yarattım, çünkü büyük cli seçenekleri listesi hakkında endişelenmek istemiyorlar, sadece ffmpeg'de tüm seçenekler olsa bile belirli görevleri kolaylıkla yapabilecek bir araç istiyorlardı. ama yine de noob'un hepsini komut satırı yardım bölümünde bulması zor olurdu. bu araç, bir
çaylağın

Elbette,-vf "crop=iw*0.1:ih*0.1:0:0"
llogan
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.