35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
# Конвертация роликов: MP4 → WebM и превью WebP
|
||
|
||
Скрипт `scripts/convert-videos.mjs` для каждого `.mp4` в указанной папке создаёт рядом:
|
||
|
||
- `имя.webm` — видео VP9/Opus (без отдельной аудиодорожки в исходнике — видео без звука);
|
||
- `имя.webp` — превью, один кадр (таймкод: не дальше 1 с от начала и не дальше 10% длительности, масштаб по ширине до 1280 px).
|
||
|
||
## Требования
|
||
|
||
- **Node.js** (как и для остального проекта);
|
||
- **ffmpeg** и **ffprobe** в `PATH` (полная сборка с `libvpx`/`libvpx-vp9`, `libopus`, `libwebp`).
|
||
|
||
## Запуск
|
||
|
||
Из корня репозитория (где `package.json`), укажи **папку с роликами** (относительно корня или абсолютный путь):
|
||
|
||
```bash
|
||
npm run convert-videos -- public/assets/cases/мой-кейс/видео
|
||
```
|
||
|
||
либо:
|
||
|
||
```bash
|
||
node scripts/convert-videos.mjs public/assets/cases/мой-кейс/видео
|
||
```
|
||
|
||
В PowerShell путь в кавычках, если в нём пробелы:
|
||
|
||
```powershell
|
||
npm run convert-videos -- "public\assets\cases\мой-кейс\видео"
|
||
```
|
||
|
||
## Когда ролик не трогается
|
||
|
||
Если для `foo.mp4` уже существуют **оба** файла `foo.webm` и `foo.webp` в той же папке, этот ролик **пропускается**. Если не хватает только webm или только webp — догенерируется недостающий файл. |