2013-09-13 2 views
2

Я пытаюсь использовать ffmpeg для вырезания части AVI-файла. Я знаю, что подобные вопросы задавали раньше, но я пробирался через множество других сообщений, и я не вижу, где я ошибаюсь.ffmpeg вырезать видео в указанной начальной позиции

командной строки аргументов я использую для тестирования на 7 втором видео является:

-ss 00:00:01 -t 00:00:01 -i «C: \ запись \ 2013 -09-11 \ Camera 1 1_2013-09-11_22-23-43.avi \ Camera»-vcodec скопировать -acodec копию "I: \ clip2.avi"

выход:

ffmpeg версия N-56254-gb7bd688 Copyright (c) 2000-2013 разработчики FFmpeg, построенные 12 сентября 2013 21:00:14 с gcc 4.7. 3 (GCC): --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable -iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb - -enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable- libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 43.100/52. 43.100 libavcodec 55. 31.101/55. 31.101 libavformat 55. 16.102/55. 16.102 55. libavdevice 3.100/3.100 55. libavfilter 3. 84,100/84,100 3. libswscale 2. 5.100/5.100 2. libswresample 0. 17,103/17,103 0. libpostproc 52. 3,100/52. 3,100

Guessed Channel Layout for Input Stream #0.1 : mono 

Input #0, avi, from 'C:\recordings\2013-09-11\Camera 1\Camera 1_2013-09-11_22-23-43.avi': 
    Duration: 00:00:07.03, start: 0.000000, bitrate: 787 kb/s 
    Stream #0:0: Video: msmpeg4v3 (DIV3/0x33564944), yuv420p, 800x448, 30 fps, 30 tbr, 30 tbn, 30 tbc 
    Stream #0:1: Audio: adpcm_ms ([2][0][0][0]/0x0002), 44100 Hz, mono, s16, 176 kb/s 
Output #0, avi, to 'I:\clip2.avi': 
    Metadata: 
    ISFT   : Lavf55.16.102 
    Stream #0:0: Video: msmpeg4v3 (DIV3/0x33564944), yuv420p, 800x448, q=2-31, 30 fps, 30 tbn, 30 tbc 
    Stream #0:1: Audio: adpcm_ms ([2][0][0][0]/0x0002), 44100 Hz, mono, 176 kb/s 
Stream mapping: 
    Stream #0:0 -> #0:0 (copy) 
    Stream #0:1 -> #0:1 (copy) 
Press [q] to stop, [?] for help 
frame= 88 fps=0.0 q=-1.0 Lsize=  226kB time=00:00:02.03 bitrate= 908.7kbits/s  

video:146kB audio:66kB subtitle:0 global headers:0kB muxing overhead 6.345259% 

В итоге я получаю клип длиной 3 секунды !!! ?? В результате я вижу, что флаг -ss полностью игнорируется.

Может ли кто-нибудь увидеть, где я ошибаюсь?

Благодаря

+0

Итак ... Вы попробовали мое решение (-ss после -i)? – SpliFF

ответ

-1

Некоторые советы здесь: https://trac.ffmpeg.org/wiki/Seeking%20with%20FFmpeg

См "Fast Знакомлюсь" против "Точный Знакомлюсь". Для точных поисков:

  • -ss должен прийти ПОСЛЕ-i

Я подозреваю, что ваши входные кадры выходят за рамками каких-либо ключевых кадров так "Fast Знакомится" (-ss перед тем -i) терпит неудачу.

Также -t обычно принимает в качестве своего ввода количество кадров, я не уверен, что он принимает временный код. Вместо этого используйте вместо этого -t 1 или вместо -to 00:00:02 (примечание: -to, not -t). EDIT: slhck является правильным относительно -t по сравнению с -vframes, см. Комментарий.

+0

Я думаю, что вы правы в ключевых кадрах. Мне нужна способность нарезать видео в любой момент, например virtualdub, поэтому я не буду работать для меня. Спасибо за помощь. – megamania

+0

* "- t обычно принимает в качестве своего ввода несколько кадров" * - это неверно. Фактически он принимает секунды или временный код «HH: MM: SS.ms». Количество видеокадров может быть установлено с помощью '-frames: v' (или псевдонима' -vframes'). См .: http://ffmpeg.org/ffmpeg-all.html#Main-options – slhck

0

-i - для продолжительности. например, если вы хотите видео в течение 5 секунд, следует написать

-ss 00:00:01 -t 00:00:05 -i "C: \ recordsings \ 2013-09-11 \ Camera 1 \ Camera 1_2013- 09-11_22-23-43.avi "-vcodec copy -acodec copy" I: \ clip2.avi "

-ss - это смещение, когда вы пишете -ss 00:00:01, что оставляет вам 6 секунд при записи -t 00:00:01, это видео с 1 секундой, а не 3 секунды.

Смежные вопросы