MyTetra Share
Делитесь знаниями!
Как через ffmpeg вырезать ненужный кусок видео без перекодирования
Время создания: 21.01.2017 22:39
Текстовые метки: ffmpeg, вырезать, удалить, видео
Раздел: Компьютер - Linux - Видео в Linux - FFmpeg
Запись: xintrea/mytetra_syncro/master/base/1485027597d98hikrmw6/text.html на raw.github.com

В ffmpeg есть две опции:


  • -ss ЧЧ:ММ:СС - начать воспроизведение с указанного места
  • -t ЧЧ:ММ:СС - воспроизводить указанное количество времени


Например, чтобы получить кусок, начиная с 35-й минуты длительностью 5 сек, можно воспользоваться командой:


ffmpeg -i InputVideo.avi -vcodec copy -acodec copy -ss 0:35:00 -t 0:00:5 OutputVideo.avi



Возможные проблемы


Однако, в ffmpeg существует баг https://github.com/Just-Some-Bots/MusicBot/issues/405, из-за которого невозможно вырезать кусок в AVI-потоке. Появляется следующая ошибка:


[avi @ 0x9259000] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.


Говорят, что этот баг исправили в сборке 20160711. Если у вас более старая сборка, то ничего не получится. Как узнать номер сборки? Ну, можно воспользоваться опциями -version или -buildconf. Только в выводе может и не быть информации о номере сборки, все зависит от дистрибутива. В Debian версия с ошибкой такая: 3.1.3-1~bpo8+1.


А в версии 7:3.2.2-1~bpo8+1 эта ошибка не появляется, но и выходной видеопоток не формируется, в поток попадает только аудио.



Результат


Итак, с помощью вышеприведенной команды можно вырезать кусок видео без перекодировки. Таким образом, можно посмотреть, какой кусок будет вырезаться. А далее нужно сделать обратное действие - оставить все, кроме указанного куска.


Далее тут надо расписать, как это делать, но я не могу, потому что у меня сборка ffmpeg с ошибкой.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования