Tek satırlık komutla videonun bir bölümünü ayıkla


81

Normalde avi olan bir videom varsa, ancak herhangi biri olabilir ve aynı formatta başka bir tane oluşturmak istiyorum, ancak sadece bir kısmı, videodaki i saniyeden f saniyeye f pozisyonu , ne yapmalıyım? bu?

Yanıtlar:


114

Bu mencoderve kullanılarak yapılabilir ffmpeg.

mencoder

00: 30'da başlayan bir parçayı 5 saniye uzunluğunda orijinal dosyaya kesmek istediğinizi ve yeniden kodlanmaması gerektiğini (yeniden kodlamak isterseniz copysesle değiştirmek zorunda kalacağınızı söyleyin). ve video kodekleri, mevcut ses kodekleri sayısının mencoder -oac helpbir listesi için, mevcut video kodekleri sayısının bir listesi için mencoder -ovc help), sonra şunu sorun:

mencoder -ss 00:30:00 -endpos 00:00:05 -oac copy -ovc copy originalfile -o newfile

Değiştirmeniz gerekir orginalfileve newfilegerçek dosya adlarıyla daha sonra kesilen kısmı tutmak için oluşturulan dosyanın adıdır.

ffmpeg

00: 30'da başlayan bir parçayı 5 saniye uzunluğunda orijinal dosyaya kesmek istediğinizi ve yeniden kodlanmaması gerektiğini (yeniden kodlamak isterseniz değiştirmek zorunda kalacağınızı söyleyin). copyses ve video codec'lerinde, kullanılabilir codec'lerin sayısının bir listesi için ffmpeg -formats -E)

ffmpeg -ss 00:00:30 -i orginalfile -t 00:00:05 -vcodec copy -acodec copy newfile

Değiştirmeniz gerekir orginalfileve newfilegerçek dosya adlarıyla daha sonra kesilen kısmı tutmak için oluşturulan dosyanın adıdır.


Başvuru için http://lazyxiong-tech.blogspot.com/2007/05/using-mencoder-to-cut-out-pieces-of.html ve "7. Videonun Sadece Bir Parçasını Kopyala" konusuna bakın : http: // segfault.in/2010/10/ffmpeg-tricks-you-should-know-about/


Denedim ve başarısız oldum. Avi, flv ve mpg için kullanacağınız tipik codec bileşenlerinizle sizin için komutun ne olacağını gösterir misiniz? Codec bileşenlerini listeledim ama fazla bir şey anlamadım.
Strapakowsky

@strapakowsky Girdi dosyasına ve hangi kodekleri kurduğuna bağlı. Belki de bunun için yeni bir soru yapmalı ve hangi dosyaya sahip olduğunuz ve hangi komutu denediğiniz hakkında bilgi eklemelisiniz.
NN

@ strapakowsky Ben de ffmpeg ile çalışmak için alamıyorum ama ffmpeg ile parçaları kesmeye tüm kılavuzları bir şekilde çalışması gerektiğini önerir, bu yüzden cevabımı saklıyorum. Bununla birlikte, çalışmaya başladığım bir mencoder hattı da ekledim.
NN

Sadece bunun bir versiyonunu kullandım. Bu çünkü için çalışmıyor -ss ... -t ...ihtiyaçlar olmak önce-i infile seçeneği. Gerçek bir liner için bu cevaba bakınız . Neredeyse anladın, sadece emir değil ...
Hendy

1
@Hendy Buna göre düzenlendi
NN

25

Videoyu yeniden kodlama ile mi yoksa yeniden kodlama modu olmadan mı kesmeniz gerekiyor? Aşağıdaki komutu izlemeyi deneyebilirsiniz.

Özet: ffmpeg -i [input_file] -ss [start_seconds] -t [period_seconds] [output_file]

yeniden kodlama olmadan FFmpeg cut mp4 video kullanın

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4

yeniden kodlama ile FFmpeg kesilmiş mp4 video kullanın

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -async 1 -strict -2 cut_video.mp4

Bölümü baştan kesmek istiyorsanız -t 00:00:10, komuttan bırakmanız yeterlidir.


0

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

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

medipack trim input.mp4 -s 01:04 -e 14:08 -o output.mp4
medipack trim input.mp4 -s 01:04 -t 13:04 -o output.mp4

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

README'de https://github.com/srbcheema1/medipack ve checkout örneklerini ziyaret edebilirsiniz .


-1

Daha kesin olmak gerekirse: MANUALLY Dosyayı kare ilerlemeli (en sevdiğim oyuncuyu seçiyor ama MPC-HC çalışıyor) ve bir AVISynth dosyasını aşağıdaki gibi oynayacak bir medya oynatıcıda açıp:

DirectShowSource(("C:\Downloads\Video\Do you want him.flv"), Pixel_Type="yuy2").Crop(0,0,-0,-0)
Subtitle("C:\Downloads\Video\Do you want him.flv", font="Arial", size=24, text_color=$ff0000, align=3)
ShowFrameNumber(scroll=true, x=336, y=27, font="Arial", size=24, text_color=$ff0000)

ShowTime(x=398, y=44, font="Arial", size=24, text_color=$ff0000)

Daha sonra EXACT zaman formatı ile kesin:

ffmpeg -i "Path\do you want him.flv" -ss 00:00:05.240 -to 00:00:08.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him1.flv"

ve

ffmpeg -i "Path\do you want him.flv" -ss 00:00:10.240 -to 00:00:14.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him2.flv"

Katılmak istiyorsanız, aşağıdaki gibi içerikleri olan video dosyalarıyla bir txt dosyası hazırlayın:

file 'C:\Downloads\Video\Do you want him1.flv'

file 'C:\Downloads\Video\Do you want him2.flv'

Çalıştır ffmpeg:

ffmpeg -f concat -i FileList.txt -c copy "Path\NewName_joined.flv"

PROGRAMLAMA BİR program yazdım ancak göstermek için seviye 10'a sahip değilim, üzgünüm

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.