Extrahieren Sie einen Teil eines Videos mit einem einzeiligen Befehl


81

Wenn ich ein Video habe, normalerweise avi, aber eines sein könnte, und ich möchte ein anderes im gleichen Format erstellen, aber nur einen Teil, die Position i Sekunden bis f Sekunden im Video, was ist der einzeilige Befehl zu tun diese?

Antworten:


114

Dies kann mit mencoderund erfolgen ffmpeg.

Mencoder

Angenommen, Sie möchten einen Teil ab 00:00:30 in die Originaldatei mit einer Länge von 5 Sekunden ausschneiden und nicht neu codieren (wenn Sie ihn neu codieren möchten, müssen Sie ihn durch copyAudio ersetzen und Video-Codecs (für eine Liste verfügbarer Audio-Codecs mencoder -oac help, für eine Liste verfügbarer Video-Codecs mencoder -ovc help), geben Sie Folgendes ein:

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

Sie müssen die Dateinamen ersetzen orginalfileund newfiledurch die tatsächlichen Dateinamen ersetzen. Letzterer ist der Name der Datei, die für den ausgeschnittenen Teil erstellt wurde.

ffmpeg

Angenommen, Sie möchten einen Teil ab 00:00:30 in der Originaldatei mit einer Länge von 5 Sekunden ausschneiden und ihn nicht neu codieren (wenn Sie ihn neu codieren möchten, müssen Sie ihn ersetzen) copymit Audio- und Video-Codecs (für eine Liste der verfügbaren Codecs ffmpeg -formats -E) geben Sie Folgendes ein:

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

Sie müssen die Dateinamen ersetzen orginalfileund newfiledurch die tatsächlichen Dateinamen ersetzen. Letzterer ist der Name der Datei, die für den ausgeschnittenen Teil erstellt wurde.


Weitere Informationen finden Sie unter http://lazyxiong-tech.blogspot.com/2007/05/using-mencoder-to-cut-out-pieces-of.html und "7. Nur einen Teil des Videos kopieren" in http: // segfault.in/2010/10/ffmpeg-tricks-you-should-know-about/


Ich habe es versucht und bin gescheitert. Können Sie mir zeigen, was der Befehl für Sie mit Ihren typischen Codecs für AVI, FLV und MPG wäre? Ich habe die Codecs aufgelistet, konnte aber keinen Sinn daraus machen.
Strapakowsky

@strapakowsky Das hängt von der Eingabedatei und den installierten Codecs ab. Vielleicht sollten Sie eine neue Frage dazu stellen und Informationen darüber hinzufügen, welche Datei Sie haben und welchen Befehl Sie ausprobiert haben.
NN

@strapakowsky Ich kann es auch nicht mit ffmpeg zum Laufen bringen, aber alle Anleitungen zum Ausschneiden von Teilen mit ffmpeg schlagen vor, dass es irgendwie funktionieren sollte, also behalte ich es in meiner Antwort. Ich habe jedoch auch eine Mencoder-Zeile hinzugefügt, mit der ich arbeiten kann.
NN

Habe gerade eine Version davon benutzt. Es funktioniert nicht für Sie , weil -ss ... -t ...Bedürfnisse sein vor der -i infileWahl. Sehen Sie diese Antwort für den echten Einzeiler. Sie haben es fast geschafft, nur nicht die Reihenfolge ...
Hendy

1
@Hendy Bearbeitet entsprechend
NN

25

Müssen Sie Videos mit oder ohne Neucodierungsmodus schneiden? Sie können versuchen, den folgenden Befehl auszuführen.

Inhaltsangabe: ffmpeg -i [Eingabedatei] -ss [Start_Sekunden] -t [Dauer_Sekunden] [Ausgabedatei]

verwende FFmpeg, schneide mp4-Video ohne Neukodierung

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

verwende FFmpeg, schneide mp4-Video mit neuer Kodierung

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

Wenn Sie einen Abschnitt von Anfang an abschneiden möchten, lassen Sie -t 00:00:10den Befehl einfach los


0

medipack ist eine sehr einfache Kommandozeilen-App als Wrapper über ffmpeg.

Mit den folgenden Befehlen können Sie Ihr Video zuschneiden:

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

Sie können die Optionen des Unterbefehls "Trimmen" wie folgt anzeigen:

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

Sie könnten auch andere Optionen mit erkunden 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

Sie können https://github.com/srbcheema1/medipack besuchen und Beispiele in README auschecken.


-1

Genauer gesagt können Sie: MANUELL die Datei in einem Mediaplayer öffnen, der Frame für Frame vorrückt (Potplayer mein Favorit, aber MPC-HC funktioniert) und eine AVISynth-Datei mit folgenden Daten abspielen:

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)

Dann schneiden Sie mit dem GENAUEN Zeitformat:

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"

und

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"

Wenn Sie beitreten möchten, erstellen Sie eine TXT-Datei mit den Videodateien mit Inhalten wie:

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

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

Ausführen ffmpeg:

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

PROGRAMMATISCH Ich habe ein Programm geschrieben, habe aber kein Level 10, um es zu zeigen, sorry

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.