В Linux ви можете скористатися утилітою ffmpeg
, щоб розбити відеофайл на частини. Ось приклад розбиття відео на три рівні частини:
ffmpeg -i вхідне_відео.mp4 -c copy -map 0 -segment_time 00:05:00 -f segment вихід_%03d.mp4
У цьому прикладі:
-i вхідне_відео.mp4
: вказує вхідний відеофайл.-c copy
: вказує використовувати той самий кодек для відео та аудіо, який використовується в оригінальному відео. Це прискорює процес обробки.-map 0
: вказує взяти всі потоки (відео, аудіо, підтитри тощо) з першого вхідного файлу.-segment_time 00:05:00
: вказує час тривалості кожного сегменту. У цьому випадку відео буде розділено на сегменти по 5 хвилин кожен. Ви можете змінити це значення за потребою.-f segment
: вказує формат вихідних сегментів.вихід_%03d.mp4
: вказує префікс імені файлу для вихідних сегментів. %03d
вказує формат номера файлу з трьома цифрами (наприклад, 001, 002, 003).Цей приклад розбиває вхідне відео на рівні частини по 5 хвилин кожна. Вам може знадобитися налаштувати час розділу відповідно до вашого відео.
Як виявилося, в попередньому способі розділення відео в відео включається час попередньої частини відео. Такий розподіл може бути незрозумілим для деяких сервісів. Тому має сенс, щоб у відео час починався з нуля.
Цього ми можемо досягти менш швидкісною операцією перекодування відео:
ffmpeg -i ’ВашеВідео.mp4’ -ss 00:09:30 -to 00:28:30 -vf "setpts=PTS-STARTPTS" вихід_02.mp4
В цьому випадку:
-ss 00:09:30
вказує початковий час обрізки.-to 00:28:30
вказує кінцевий час обрізки.-vf "setpts=PTS-STARTPTS"
вказує фільтр, який забезпечить, що час відео буде починатися з нуля.Автор: Рудюк С.А. 2023. K2 Cloud ERP.