2015-08-04 4 views
1

Я пытаюсь обрезать видео, которое 75 размер ГБ и 1 час и длиной 28 минутКак обрезать большое видео с помощью ffmpeg?

Я только хочу, чтобы получить 7 секунд из него

Когда я пытаюсь это

ffmpeg -i Replay.mp4 -ss 01:21:24.0000 -to 01:21:32.0000 -acodec copy -vcodec copy ShortReplay2.mp4 

Я получаю это

Stream mapping: 
    Stream #0:1 -> #0:0 (copy) 
    Stream #0:0 -> #0:1 (copy) 
Press [q] to stop, [?] for help 
frame= 0 fps=0.0 q=-1.0 size=  0kB time=00:00:00.00 bitrate=N/A 

Он застрял и ничего не происходит, ждали около 30 минут и до сих пор застрял

Однако, когда я пытаюсь подрезки с самого начала видео

ffmpeg -i Replay.mp4 -ss 00:00:00.000 -to 00:20:00.000 -acodec copy -vcodec copy ShortReplay2.mp4 

Он работает без проблем

Это потому, что размер файла слишком велик, и программа занимает слишком много времени, чтобы прочитать его? Что я могу сделать?

+0

Обратите внимание, что переполнение стека только для вопросов, связанных с программирования. [su] является подходящим местом для дополнительных вопросов 'ffmpeg' cli. Кроме того, вы всегда должны предоставлять полный вывод консоли, а не только выдержку. – LordNeckbeard

ответ

2

размещения Опция имеет значение

Вы можете попробовать использовать -ss в качестве опции ввода (до -i). Это немедленно будет искать ближайшую точку поиска до объявленной позиции -ss. Обратите внимание, что когда -ss используется как опция ввода, параметр -to ведет себя так же, как опция -t.

Если вы считаете, что это недостаточно точно, вам может потребоваться использовать -ss в качестве опции вывода и/или перекодировать вместо stream copy. В качестве выходного параметра он медленнее, поэтому вы можете просто не ждать достаточно долго, чтобы он мог полностью декодировать вашу позицию.

Пример

ffmpeg -ss 01:21:24 -i input.mp4 -t 7 -c copy output.mp4 

Также см

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