Was ist der Befehl, um einen Teil eines Videos auszuschneiden und mit ffmpeg zu speichern?

8

ich habe es versucht

ffmpeg -t in_movie.avi -ss 00:26:20 -t 00:28:24 out_movie.avi

aber das gibt mir:

Invalid duration specification for t: in_movie.avi

Bitte beraten.

UPDATE: Molly, dieser Befehl gibt:

FFmpeg version SVN-r19352-4:0.5+svn20090706-2ubuntu2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5+svn20090706-2ubuntu2 --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-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --extra-cflags=-I/build/buildd/ffmpeg-0.5+svn20090706/debian/include --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 0
  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 Oct 13 2009 22:15:16, gcc: 4.4.1
Input #0, avi, from 'extras.s01.e01.ws.dvdrip.xvid-m00tv.avi':
  Duration: 00:29:04.04, start: 0.000000, bitrate: 1120 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 640x368 [PAR 1:1 DAR 40:23], 25 tbr, 25 tbn, 25 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 32 kb/s
Output #0, avi, to 'out_movie.avi':
    Stream #0.0: Video: mpeg4, yuv420p, 640x368 [PAR 1:1 DAR 40:23], q=2-31, 200 kb/s, 90k tbn, 25 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
frame=    0 fps=  0 q=0.0 size=      10kB time=10000000000.00 bitrate=   0.0kbitframe=    0 fps=  0 q=0.0 size=      10kB time=10000000000.00 bitrate=   0.0kbitframe=    0 fps=  0 q=0.0 size=      10kB time=10000000000.00 bitrate=   0.0kbit

Und dann scheint es zu frieren. Ich würde mich über jede Hilfe freuen.

James
quelle

Antworten:

10

du warst ziemlich nah dran :)

Die richtige Syntax wäre ffmpeg -i InputFile -ss StartTime -t Duration Outputfile

also versuche:

ffmpeg -i in_movie.avi -ss 00:26:20 -t 00:28:24 out_movie.avi

Aktualisieren

Diese Episode ist ungefähr 40:23 lang. -t gibt die Dauer an, nicht die Endzeit. Ihr Befehl beginnt die Aufzeichnung um 26:20 Uhr für 28 Minuten und 24 Sekunden, dh bis 54:44 Uhr. Wenn Sie von 26:20 bis 28:24 aufnehmen möchten, verwenden Sie stattdessen den Schalter -t 00:02:04.

ffmpeg -i in_movie.avi -ss 00:26:20 -t 00:02:04 out_movie.avi

Jetzt erhalten Sie einen 2 Minuten und 4 Sekunden langen AVI-Clip, der von 26:20 bis 28:24 aufgenommen wurde


quelle
2
Bei neuen Versionen von ffmpeg können Sie eine Endzeit mit "-to" angeben, sodass "ffmpeg -i in_movie.avi -ss 00:26:20 -to 00:28:24 out_movie.avi" korrekt wäre.
Yay295