Я б використав ffmpeg
's сегмент мультиплікатора (прокрутіть униз за цим посиланням для деяких прикладів). В основному:
ffmpeg -i input.mp4 -c copy -f segment -segment_times 1500 output%02d.mp4
Це дозволить створити два файли, "output01.mp4" і "output02.mp4". Якщо ви будете використовувати output%03d.mp4
, замість цього ви отримаєте 'output001.mp4' і 'output002.mp4'.
-segment_times
закликає до списку розділених комами списку точок, виміряних у секундах. Оскільки ви хочете розділити тільки один раз, через 25 хвилин, просто використовуйте 1500 (= 25 * 60). Зверніть увагу на це -segment_time
(без 's') це повністю окрема опція - ви повинні використовувати це, якщо ви хочете розділити файл кожні п'ять секунд (наприклад), не вкладаючи великий список кожного конкретного часу.
Ви можете виявити, що потрібно використовувати -reset_timestamps 1
для правильного відтворення файлів:
ffmpeg -i input.mp4 -c copy -f segment -segment_times 1500 -reset_timestamps 1 output%02d.mp4
На сторінці документації є багато інших варіантів. Це має бути досить швидким і без втрат (таким чином ви отримаєте ідентичне відео без додаткових відео артефактів). Однак це не буде на 100% точним, оскільки ffmpeg потрібно розділити на ключовий кадр , які не можуть бути гарантовані без повторного кодування.
Якщо Вам потрібна точна розбивка, в документації рекомендується повторне кодування і використання -force_key_frames
і -segment_time_delta
Варіанти для забезпечення того, що буде I-кадри на час, коли сегмент мультиплікатора спробує розділити на (див. також libx264 і AAC довідники кодування на ffmpeg wiki ):
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset veryfast -c:a libfdk_aac -vbr 3 \
-force_key_frames 1500 -f segment -segment_times 1500 -segment_time_delta 0.05 output%02d.mp4
Версія ffmpeg у більшості репозиторіїв Linux буде досить старою, а у випадку Debian та Ubuntu та ін. Ситуація ще гірша: вони не надають ffmpeg, а радше avconv, з команди libav (Дивіться також Відповідь LordNeckbeard тут ). AVconv - це прекрасний інструмент самостійно, але я не можу гарантувати, що синтаксис ffmpeg буде працювати з ним 100% часу, особливо з "розширеними" матеріалами, як це.
Я б також порекомендував захоплення статичної збірки з сторінки завантажень ffmpeg або самостійно компілювати . Основною перевагою самого компіляції є те, що ви можете отримати доступ до нього libfdk_aac
, найкращий аудіокодер AAC, який може використовувати ffmpeg - який не може бути легально розповсюджений у скомпільованому двійковому файлі ffmpeg, через конфлікти ліцензування (fdk_aac використовує спеціальну ліцензію на copyleft, яка не зовсім сумісна з GPL ffmpeg).