- Регистрация
- 08.09.2010
- Сообщения
- 576
- Благодарностей
- 41
- Баллы
- 28
Напиши лс или тг)Народ может кто сталкивался как сделать так .. что есть видео к примеру 40 минут ... надо каждую 5 секунду удалить
тоесть 00:05 00:10 00:15 00:20 и так до конца видео .. .может кто то знает как это реализовать можно?
Народ может кто сталкивался как сделать так .. что есть видео к примеру 40 минут ... надо каждую 5 секунду удалить
тоесть 00:05 00:10 00:15 00:20 и так до конца видео .. .может кто то знает как это реализовать можно?
ffmpeg -i input.mp4 -vf "select='not(mod(n,5))',setpts=N/FRAME_RATE/TB" -af "aselect='not(mod(n,5))',asetpts=N/SR/TB" output.mp4
А почему он ускоряет видео после скрипта вашего?) Хочется чтобы для начала каждые допусти 5 секунд вырезало 1-2 секунды типа.C#:ffmpeg -i input.mp4 -vf "select='not(mod(n,5))',setpts=N/FRAME_RATE/TB" -af "aselect='not(mod(n,5))',asetpts=N/SR/TB" output.mp4
- select='not(mod(n,5))' - фильтр для выбора каждого пятого кадра
- setpts=N/FRAME_RATE/TB - фильтр для установки правильного временного штампа для каждого оставленного кадра
- aselect='not(mod(n,5))' - фильтр для выбора каждого пятого аудиофрейма
- asetpts=N/SR/TB - фильтр для установки правильного временного штампа для каждого оставленного аудиофрейма
Для того чтобы сохранить скорость проигрывания, необходимо корректно настроить количества кадров в секунду в setptsА почему он ускоряет видео после скрипта вашего?) Хочется чтобы для начала каждые допусти 5 секунд вырезало 1-2 секунды типа.
Если возможно чтобы рандом можно было поставить типа каждые 10-20 секунд вырезает 1-5 секунд. Реальнои?
Т.е мне надо как-то узнать сколько кадров в секунду в видео и в параметр "setpts=N/FRAME_RATE/TB" каким то образом дописать это число?)Для того чтобы сохранить скорость проигрывания, необходимо корректно настроить количества кадров в секунду в setpts
Нужно установит правильный временной штамп для каждого кадра. ДаТ.е мне надо как-то узнать сколько кадров в секунду в видео и в параметр "setpts=N/FRAME_RATE/TB" каким то образом дописать это число?)
А куда вставлять число полученное в коде?) "setpts=N/FRAME_RATE/TB"Нужно установит правильный временной штамп для каждого кадра. Да
Ну вот я увидел что видео 24 кадра в секунду у меня, через GSpot. Т.е вышло 1/5 от исходного значения. 4,8 ! Вышла фигня какая-то)) что не так?(Вам нужно учитывать измененное количество кадров в секунду в результирующем видео. Если вы удалили каждый пятый кадр, то количество кадров в секунду должно быть установлено в 1/5 от исходного значения.
Установить правильный временной штамп для каждого кадра в соответствии с измененной скоростью проигрывания по формуле.
setpts=PTS*(OLD_FPS/NEW_FPS)
ffmpeg -i input.mp4 -vf "select='not(mod(n,5))',setpts=PTS*(30/24)" -af "aselect='not(mod(n,5))',asetpts=N/SR/TB" output.mp4
setpts=N/24/TB означает, что каждый кадр будет иметь временной штамп, вычисленный на основе количества кадров в секунду 24
Всё есть в документации.
Прошу прощения за глупые вопросы, я новичек и не пойму что надо сделать чтобы работала команда))))) cmd ffmpeg speed мне нужно ввести и указать путь к ролику чтобы это узнать?Вы выкинули каждый 5 кадр. Видео стало короче, вы его уменьшили. При установке setpts в окне cmd ffmpeg speed скотость обратите внимание.
У вас всё работает как надо. Удалили кадры и видео стало короче и быстрее.Прошу прощения за глупые вопросы, я новичек и не пойму что надо сделать чтобы работала команда))))) cmd ffmpeg speed мне нужно ввести и указать путь к ролику чтобы это узнать?