Как удалить определенную часть видео в FFmpeg, по возможности, без перекодирования?

Как удалить определенную часть видео в FFmpeg, по возможности, без перекодирования?

Я смог найтиэта темапри вырезании определенной части из файла. Это не очень полезно, так как я собираюсь сделать прямо противоположное, то есть удалить выбранную часть видео.

Этот пользовательРешение для извлечения части без перекодирования работает довольно хорошо. Могу ли я сделать что-то похожее, чтобы удалить часть выделения?

Я бы предпочел не перекодировать, но меня в любом случае все устраивает, так что подойдет любое решение.

решение1

Извлеките нужные вам части, используя параметр «Копировать» кодека -c:v copy -c:a copy

Допустим, у вас есть 6-минутное видео, и вам не нужны части со 2-й по 3-ю минуту и ​​с 4-й по 5-ю минуту:

ffmpeg -ss 00:00:00 -to 00:02:00 -i input.mp4 -c:v copy -c:a copy input_part1.mp4
ffmpeg -ss 00:03:00 -to 00:04:00 -i input.mp4 -c:v copy -c:a copy input_part2.mp4
ffmpeg -ss 00:05:00 -to 00:06:00 -i input.mp4 -c:v copy -c:a copy input_part3.mp4

Создайте текстовый файл для извлеченных вами файлов (filelist.txt)

file 'input_part1.mp4'
file 'input_part2.mp4'
file 'input_part3.mp4'

Затем соедините их вместе с помощью чего-то вроде этого.

ffmpeg -safe 0 -f concat -i filelist.txt -c копировать вывод.mp4

output.mp4 не должен содержать нежелательных частей.

Связанный контент