2012-01-11 17:59:52 +0000 2012-01-11 17:59:52 +0000
151
151

Knip deel van videobestand van begin- naar eindpositie met FFmpeg

Ik heb een videobestand van 30 minuten, maar ik wil een video uitpakken van 00:09:23 tot 00:25:33.

Ik kan de startpositie definiëren met -ss, maar ik kon er geen vinden voor de eindpositie. Hulp alstublieft?

Antworten (6)

255
255
255
2012-01-11 21:02:37 +0000

Installeer ffmpeg

Zorg ervoor dat u een recente versie van ffmpeg downloadt, en gebruik niet de versie die bij uw distributie wordt geleverd (bijv. Ubuntu). Verpakte versies van verschillende distributies zijn vaak verouderd en gedragen zich niet zoals verwacht.

of compileer het zelf .

Hoe u een video kunt knippen, zonder

te hercoderen Gebruik dit om video te knippen van [start] voor [duration]:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4

Hier betekenen de opties het volgende:

  • -ss geeft de starttijd aan, e. g. 00:01:23.000 of 83 (in seconden)
  • -t specificeert de duur van de clip (hetzelfde formaat).
  • Recent ffmpeg heeft ook een vlag om de eindtijd te voorzien van -to .
  • -c copy kopieert de eerste video-, audio- en ondertitelingsbitstream van de invoer naar het uitvoerbestand zonder deze opnieuw te coderen. Dit zal de kwaliteit niet schaden en de opdracht binnen enkele seconden uitvoeren.

Hoe een video te knippen, met hercodering

Als u de optie -c copy weglaat, zal ffmpeg automatisch de uitvoervideo en -audio hercoderen volgens het door u gekozen formaat. Lees voor video en audio van hoge kwaliteit respectievelijk de x264-coderingsgids en de AAC-coderingsgids .

bijvoorbeeld:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4
31
31
31
2015-05-07 02:30:48 +0000

Ik denk dat je nu het volgende commando kunt gebruiken.

ffmpeg -i inputFile -vcodec copy -acodec copy -ss 00:09:23 -to 00:25:33 outputFile

Kijk ook eens naar ffmpeg Doc , of deze wikipagina .

15
15
15
2015-04-07 15:10:38 +0000

Dit is vreemd dat niemand de trim filter .

Alles laten vallen behalve de tweede minuut van de invoer:

ffmpeg -i INPUT -vf trim=60:120

Hou alleen de eerste seconde:

ffmpeg -i INPUT -vf trim=duration=1

Laat alles vallen behalve de tweede 13 tot en met de tweede 58:

ffmpeg -i INPUT -vf trim=13:58 OUTPUT
6
6
6
2013-10-03 19:08:40 +0000

U kunt deze twee methoden die werken voor Windows en Linux gebruiken.

Er zijn twee manieren om videobestanden op te splitsen via ffmpeg. De eerste is op zich goed, meer dan dat - het is sneller, maar soms maakt het uitvoerbestanden met bepaalde gebreken. Voor die gevallen is er dus de tweede manier om videobestanden te splitsen: het is aanzienlijk langzamer, de uitvoerbestanden zijn groter, maar het lijkt erop dat ze altijd van hetzelfde kwaliteitsniveau zijn als de gebruikte invoerbestanden.

Weg 1:

ffmpeg -ss <start> -i in1.avi -t <duration> -c copy out1.avi

Weg 2:

ffmpeg -ss <start> -i in1.avi -t <duration> out1.avi
  • <start> - het begin van het deel van een video ffmpeg is om uit te knippen. Formaat: 00:00:00.0000, dat wil zeggen uren:minuten:seconden.

  • <duration> - de duur van het deel van een video ffmpeg is uit te knippen. Zelfde formaat als hierboven.

Voorbeelden:

ffmpeg -ss 01:19:00 -i in1.avi -t 00:05:00 -c copy out1.avi
ffmpeg -ss 01:19:00 -i in1.avi -t 00:05:00 out1.avi

ffmpeg knipt een deel van het videobestand uit vanaf 1 uur 19 minuten 0 seconden. De duur van de uitgeknipte videosequentie is 5 minuten 0 seconden.

-1
-1
-1
2012-01-11 18:29:57 +0000

U kunt deze

ffmpeg -sameq -ss clip_start -t duration -i original.ogg clip.ogg

gebruiken Hier moet u de duur van de video opgeven. d.w.z. 00:25:33-00:09:23

-2
-2
-2
2012-01-11 18:27:11 +0000

Ik gebruik de volgende syntaxis om video te knippen met ffmpef:

ffmpeg -sameq -ss [start_seconds] -t [duration_seconds] -i [input_file] [outputfile]

-t wordt gebruikt om de duur in seconden in te stellen - je kunt de eindtijd niet opgeven maar dit zou voor jou moeten werken.