daily-video-editor 0.0.0-stage → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -2
- package/dist/algorithm/face_landmarker.task +0 -0
- package/dist/algorithm/mediapipe/vision_wasm_internal.js +9140 -0
- package/dist/algorithm/mediapipe/vision_wasm_internal.wasm +0 -0
- package/dist/algorithm/mediapipe/vision_wasm_module_internal.js +9136 -0
- package/dist/algorithm/mediapipe/vision_wasm_module_internal.wasm +0 -0
- package/dist/algorithm/mediapipe/vision_wasm_nosimd_internal.js +9131 -0
- package/dist/algorithm/mediapipe/vision_wasm_nosimd_internal.wasm +0 -0
- package/dist/clip-track/components/ContextMenu/index.vue.d.ts +35 -0
- package/dist/clip-track/components/Ruler/index.vue.d.ts +22 -0
- package/dist/clip-track/components/ToolsBar/icons/SnapIcon.vue.d.ts +2 -0
- package/dist/clip-track/components/ToolsBar/index.vue.d.ts +46 -0
- package/dist/clip-track/components/Tracks/ClipItem.vue.d.ts +43 -0
- package/dist/clip-track/components/Tracks/Clips/AudioClip.vue.d.ts +9 -0
- package/dist/clip-track/components/Tracks/Clips/EffectClip.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/Clips/FilterClip.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/Clips/StickerClip.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/Clips/SubtitleClip.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/Clips/TextClip.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/Clips/TransitionClip.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/Clips/VideoClip.vue.d.ts +8 -0
- package/dist/clip-track/components/Tracks/DragPreview.vue.d.ts +6 -0
- package/dist/clip-track/components/Tracks/TrackArea.vue.d.ts +47 -0
- package/dist/clip-track/components/Tracks/TrackControl.vue.d.ts +35 -0
- package/dist/clip-track/components/Tracks/index.vue.d.ts +354 -0
- package/dist/clip-track/components/index.vue.d.ts +1911 -0
- package/dist/clip-track/composables/useAutoScroll.d.ts +11 -0
- package/dist/clip-track/composables/useKeyboard.d.ts +21 -0
- package/dist/clip-track/composables/useResize.d.ts +579 -0
- package/dist/clip-track/composables/useSelection.d.ts +4 -0
- package/dist/clip-track/composables/useTheme.d.ts +26 -0
- package/dist/clip-track/composables/useVirtualScroll.d.ts +19 -0
- package/dist/clip-track/index.d.ts +14 -0
- package/dist/clip-track/stores/clipTrackPinia.d.ts +14 -0
- package/dist/clip-track/stores/drag.d.ts +1891 -0
- package/dist/clip-track/stores/history.d.ts +74 -0
- package/dist/clip-track/stores/playback.d.ts +52 -0
- package/dist/clip-track/stores/scale.d.ts +79 -0
- package/dist/clip-track/stores/tracks.d.ts +6329 -0
- package/dist/clip-track/types/clip.d.ts +216 -0
- package/dist/clip-track/types/config.d.ts +195 -0
- package/dist/clip-track/types/index.d.ts +3 -0
- package/dist/clip-track/types/track.d.ts +12 -0
- package/dist/clip-track/utils/helpers.d.ts +16 -0
- package/dist/clip-track/utils/mainTrack.d.ts +5 -0
- package/dist/clip-track/utils/mediaProcessor.d.ts +66 -0
- package/dist/clip-track/utils/mockData.d.ts +8 -0
- package/dist/clip-track/utils/performance.d.ts +27 -0
- package/dist/editor/VideoComposeEditor.vue.d.ts +7680 -0
- package/dist/editor/applyTextTemplateSvg.d.ts +1 -0
- package/dist/editor/asset-panel/VideoComposeAssetCard.vue.d.ts +12 -0
- package/dist/editor/asset-panel/VideoComposeAssetPanel.vue.d.ts +74 -0
- package/dist/editor/asset-panel/VideoComposeClipCatalog.vue.d.ts +23 -0
- package/dist/editor/asset-panel/VideoComposeTextTemplateCatalog.vue.d.ts +9 -0
- package/dist/editor/composeRuntime.d.ts +7 -0
- package/dist/editor/index.d.ts +7 -0
- package/dist/editor/installComposeElementPlus.d.ts +6 -0
- package/dist/editor/modals/BgmUploadModal.vue.d.ts +27 -0
- package/dist/editor/player/VideoComposeFrameBox.vue.d.ts +37 -0
- package/dist/editor/player/VideoComposePlayer.vue.d.ts +174 -0
- package/dist/editor/player/VideoComposeTextStickerOverlay.vue.d.ts +30 -0
- package/dist/editor/session/createComposeEditorState.d.ts +179 -0
- package/dist/editor/session/ports.d.ts +25 -0
- package/dist/editor/session/trackLookup.d.ts +20 -0
- package/dist/editor/session/useComposeCatalog.d.ts +45 -0
- package/dist/editor/session/useComposeEditorSession.d.ts +7765 -0
- package/dist/editor/session/useComposeInspector.d.ts +57 -0
- package/dist/editor/session/useComposePlaybackBridge.d.ts +13 -0
- package/dist/editor/session/useComposeProject.d.ts +12 -0
- package/dist/editor/session/useComposeShellLayout.d.ts +13 -0
- package/dist/editor/session/useComposeVideoFrame.d.ts +24 -0
- package/dist/editor/session/videoComposeEditorExpose.d.ts +19 -0
- package/dist/editor/shared/VideoComposeUnderlineTabs.vue.d.ts +12 -0
- package/dist/editor/shared/applyTextTemplateSvg.d.ts +17 -0
- package/dist/editor/shared/playbackRate.d.ts +12 -0
- package/dist/editor/shared/textTemplateCatalog.d.ts +48 -0
- package/dist/editor/shared/videoComposeMockClips.d.ts +28 -0
- package/dist/editor/shared/videoFrame.d.ts +68 -0
- package/dist/editor/shared/volumeDb.d.ts +37 -0
- package/dist/editor/sidebar/PlaybackRateControl.vue.d.ts +12 -0
- package/dist/editor/sidebar/SubtitleFontPopover.vue.d.ts +46 -0
- package/dist/editor/sidebar/VideoComposeBeautyControls.vue.d.ts +11 -0
- package/dist/editor/sidebar/VideoComposeSidebar.vue.d.ts +126 -0
- package/dist/editor/sidebar/VideoComposeTextTemplateProps.vue.d.ts +22 -0
- package/dist/editor/sidebar/VideoComposeTransformPanel.vue.d.ts +17 -0
- package/dist/editor/sidebar/VolumeDbControl.vue.d.ts +12 -0
- package/dist/editor/textTemplateCatalog.d.ts +1 -0
- package/dist/editor/timeline/VideoComposeTimeline.vue.d.ts +3416 -0
- package/dist/editor/timeline/VideoComposeZoomBar.vue.d.ts +20 -0
- package/dist/editor/volumeDb.d.ts +1 -0
- package/dist/hooks/previewAudioMixer.d.ts +33 -0
- package/dist/hooks/previewMediaGain.d.ts +10 -0
- package/dist/hooks/previewSourceTime.d.ts +20 -0
- package/dist/hooks/useComposePreviewFrame.d.ts +39 -0
- package/dist/hooks/useComposeUploadCatalog.d.ts +3 -0
- package/dist/hooks/useResolveComposeClips.d.ts +37 -0
- package/dist/hooks/useVideoComposePreview.d.ts +53 -0
- package/dist/hooks/useVideoComposeSubtitleAdjust.d.ts +122 -0
- package/dist/hooks/useVideoComposeTextStickerOverlay.d.ts +53 -0
- package/dist/hooks/useVideoComposeTimelineScale.d.ts +29 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +37394 -0
- package/dist/service/resolveComposeMediaUrl.d.ts +42 -0
- package/dist/style.css +1 -0
- package/dist/style.d.ts +0 -0
- package/dist/types/beautyPreview.d.ts +82 -0
- package/dist/types/composeMedia.d.ts +173 -0
- package/dist/types/videoCompose.d.ts +350 -0
- package/dist/utils/beauty/gpuPixelPreview.d.ts +32 -0
- package/dist/workers/beauty/copyFrameRgba.d.ts +15 -0
- package/dist/workers/beauty/decodeSession.d.ts +30 -0
- package/dist/workers/beauty/facePass.d.ts +26 -0
- package/dist/workers/beauty/installImportScripts.d.ts +6 -0
- package/dist/workers/beautyPreview.worker.d.ts +1 -0
- package/package.json +43 -4
package/README.md
CHANGED
|
@@ -1,3 +1,138 @@
|
|
|
1
|
-
#
|
|
1
|
+
# video-clips
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
视频合成编辑器。打包后宿主只需 Vue,不必再装 Pinia、全局 Element Plus 或 Tailwind。
|
|
4
|
+
|
|
5
|
+
## 接入
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { createApp, ref } from "vue";
|
|
9
|
+
import {
|
|
10
|
+
createDefaultVideoComposeEditorModel,
|
|
11
|
+
VideoComposeEditor,
|
|
12
|
+
type VideoComposeEditorExpose,
|
|
13
|
+
type VideoComposeEditorModel,
|
|
14
|
+
} from "video-clips";
|
|
15
|
+
import "video-clips/style.css";
|
|
16
|
+
|
|
17
|
+
const model = ref<VideoComposeEditorModel>(
|
|
18
|
+
createDefaultVideoComposeEditorModel({
|
|
19
|
+
bizType: "source_video",
|
|
20
|
+
bizId: "local",
|
|
21
|
+
}),
|
|
22
|
+
);
|
|
23
|
+
const editorRef = ref<VideoComposeEditorExpose | null>(null);
|
|
24
|
+
|
|
25
|
+
createApp(App).mount("#app");
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```vue
|
|
29
|
+
<VideoComposeEditor ref="editorRef" v-model="model" />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`peerDependencies` 只有 `vue`。`pinia`、`element-plus` 随包安装,并在编辑器内部使用:每个时间轴自建一份 Pinia,同页多个编辑器不会抢轨。
|
|
33
|
+
|
|
34
|
+
换稿必须调用 `editorRef.reload(model)`。只改 `v-model` 引用不会回灌时间轴。
|
|
35
|
+
|
|
36
|
+
## 组件 Ref(`VideoComposeEditorExpose`)
|
|
37
|
+
|
|
38
|
+
| 方法 | 说明 |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| `validate(): string \| null` | 导出前校验。`null` 表示通过,否则为错误文案 |
|
|
41
|
+
| `flush(): void` | 立刻把当前轨道、喜欢态、缩放写入 `update:modelValue` |
|
|
42
|
+
| `reload(model): Promise<void>` | 用指定工程整页重置时间轴。换稿只走这个方法 |
|
|
43
|
+
| `exportComposePayload()` | 先 `flush`,再返回 `{ id, bizType, bizId, tracks }` |
|
|
44
|
+
| `getMainVideoClips()` | 主轨视频片段。优先读时间轴,否则用派生列表 |
|
|
45
|
+
| `requestUploadClip()` | 触发上传视频:有 `onRequestUploadClip` 则交给宿主,否则走内置上传 |
|
|
46
|
+
|
|
47
|
+
## 公共类型
|
|
48
|
+
|
|
49
|
+
声明在 `dist/index.d.ts`。包根导出:
|
|
50
|
+
|
|
51
|
+
- 组件与工厂:`VideoComposeEditor`、`createDefaultVideoComposeEditorModel`
|
|
52
|
+
- 工程:`VideoComposeEditorModel`、`ComposeExportPayload`、`ComposeTrack`、`ComposeClip`、`MediaBizType`、`MediaRef`、`ComposeSegmentClipAssets`
|
|
53
|
+
- 侧栏种子:`BgmItem`、`TextTemplateItem`、`VideoClipItem`
|
|
54
|
+
- 入参与上传:`ComposeEditorProps`、`ComposeUploadAdapter`、`ComposeBgmUploadResult`、`ComposeCatalogUploadPayload`
|
|
55
|
+
- Ref:`VideoComposeEditorExpose`
|
|
56
|
+
- 轨道片段:`MediaClip`、`SubtitleClip`、`TextClip`、`TrackType`
|
|
57
|
+
- 媒体地址:`createComposeMediaResolver`、`isPassthroughMediaUrl`、`mediaCorsMessage`、`ComposeMediaResolver`、`ResolveMediaUrl`
|
|
58
|
+
|
|
59
|
+
字段含义以声明文件为准。
|
|
60
|
+
|
|
61
|
+
## 发包
|
|
62
|
+
|
|
63
|
+
`package.json` 保持 `"private": true`。本包默认不发到公共 npm。
|
|
64
|
+
|
|
65
|
+
安装方式:monorepo workspace、`file:` 依赖,或私有 registry。类型入口是 `dist/index.d.ts`(`files` 含整个 `dist`)。要公开发到 npm 时,须先去掉 `private`,再按公开发布流程处理,不走上述私有安装约定。
|
|
66
|
+
|
|
67
|
+
构建:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm run build
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
库产物:
|
|
74
|
+
|
|
75
|
+
- `dist/index.js`
|
|
76
|
+
- `dist/index.d.ts`
|
|
77
|
+
- `dist/style.css`
|
|
78
|
+
- `dist/algorithm/`
|
|
79
|
+
|
|
80
|
+
## 产物部署
|
|
81
|
+
|
|
82
|
+
宿主必须引入样式,否则编辑器没有皮肤:
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
import "video-clips/style.css";
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
美颜预览 Worker 在 `npm run build` 时内联进 `dist/index.js`。不要单独部署 worker 文件,也不要再准备 `/assets/beautyPreview.worker-*.js`。
|
|
89
|
+
|
|
90
|
+
`dist/algorithm/` 仍须挂到宿主静态目录。默认从站点根路径 `/algorithm/` 读取:
|
|
91
|
+
|
|
92
|
+
- `/algorithm/face_landmarker.task`
|
|
93
|
+
- `/algorithm/mediapipe/`
|
|
94
|
+
|
|
95
|
+
本地 demo 使用 `public/algorithm/`。库构建只拷贝这两项到 `dist/algorithm/`。挂好后可用 `algorithmBaseUrl` 改根路径(须是目录,并能拼出上述两个相对路径)。
|
|
96
|
+
|
|
97
|
+
## 侧栏素材(不进工程 JSON)
|
|
98
|
+
|
|
99
|
+
视频 / 音频 / 音效 / 花字列表由 **Editor 内部数组**维护,**不写入** `v-model`(`model` 只有 tracks、likedMedia、scale 等)。
|
|
100
|
+
|
|
101
|
+
可用 props 作种子;上传成功事件载荷为:
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
{ file: File; item: T; items: T[] }
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
宿主可把 `items` 回写到自己的状态。纯 `onRequestUpload*` 由宿主自管 UX,不走该 emit。
|
|
108
|
+
|
|
109
|
+
## 跨域媒体
|
|
110
|
+
|
|
111
|
+
预览、缩略图和美颜抽帧都要能读取像素。编辑器会:
|
|
112
|
+
|
|
113
|
+
- 给 `video` / `audio` 设置 `crossorigin="anonymous"`
|
|
114
|
+
- 对跨域地址默认 `fetch`(`mode: "cors"`)并转成 `blob:`
|
|
115
|
+
- 同源、`blob:`、`data:` 原样使用
|
|
116
|
+
|
|
117
|
+
源站需要:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Access-Control-Allow-Origin: <页面源> 或 *
|
|
121
|
+
Access-Control-Allow-Methods: GET
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
没有 CORS 头时,默认 fetch 会失败,界面提示配置 `resolveMediaUrl`。宿主把地址换成同源代理或 blob:
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
async function proxyToBlob(url: string): Promise<string> {
|
|
128
|
+
const response = await fetch(`/api/media-proxy?url=${encodeURIComponent(url)}`);
|
|
129
|
+
if (!response.ok) throw new Error("媒体代理失败");
|
|
130
|
+
return URL.createObjectURL(await response.blob());
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
```vue
|
|
135
|
+
<VideoComposeEditor v-model="model" :resolve-media-url="proxyToBlob" />
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
本仓库不实现代理服务。
|
|
Binary file
|