reel-export

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Reel export

Reel 导出

Most motion is built wide. This turns it into a vertical file with a hook on top that the apps accept without washing out the colours.
Before you start: read
brand.md
and
MOTION.md
if they exist. If not, run
brand-intake
first, or ask for hex codes, a font and a logo file. Never call a result on-brand without them.
大多数动态素材都是宽屏制作的。此流程会将其转换为带有顶部 hook 的竖屏文件,并确保应用上传后不会发生色彩失真。
**开始之前:**如果
brand.md
和
MOTION.md
存在,请先阅读它们。如果不存在,请先运行
brand-intake
,或者询问 hex 色值、字体和 Logo 文件。缺少这些信息时,绝不能将结果称为符合品牌规范。

Step 1: Ask for four things, then wait

第 1 步:询问四项信息,然后等待

  1. The video. Any MP4, any size.
  2. The headline, two short lines, word for word. It is the hook people read with the sound off.
  3. Logos, as attached files, if the video names a product or company.
  4. The background colour around the video. Default: near-black
    #0B0B0F
    .
  1. **视频。**任意 MP4,尺寸不限。
  2. **标题。**两行短文案,逐字提供。这是用户在关闭声音时阅读的 hook。
  3. **Logo。**如果视频中提到了某个产品或公司,请以附件形式提供 Logo。
  4. **背景色。**视频周围的背景色。默认值:近黑色
    #0B0B0F
    。

Step 2: The safe zone

第 2 步:安全区

The app draws its own buttons, caption and profile over the edges of a Reel. Keep every word and logo:
  • between y 360 and y 1420 (nothing in the bottom 500px)
  • out of the right 120px
Put the headline at the top of that zone, then the video under it. A 16:9 video scaled to 1080 wide is 608 tall, so it sits well at y 660.
应用会在 Reel 边缘叠加自己的按钮、字幕和头像。所有文字和 Logo 都必须:
  • 位于 y 360 到 y 1420 之间(底部 500px 区域内不得有任何内容)
  • 避开右侧 120px 区域
将标题放在该区域顶部,再把视频放在标题下方。16:9 视频缩放至 1080 宽后高度为 608,因此放在 y 660 处很合适。

Step 3: Build the overlay, then encode

第 3 步:制作叠加层,然后编码

Build a transparent 1080 x 1920
overlay.png
in HTML with the headline and any logos, and screenshot it. Text you can style beats text burned in by ffmpeg. Then:
ffmpeg -y -i in.mp4 -loop 1 -i overlay.png -f lavfi -i anullsrc=r=48000:cl=stereo -filter_complex "color=c=0x0B0B0F:s=1080x1920:r=30[bg];[0:v]fps=30,scale=1080:-2,setsar=1[v];[bg][v]overlay=0:660:shortest=1[o];[o][1:v]overlay=0:0:shortest=1,scale=out_color_matrix=bt709:out_range=tv,format=yuv420p[out]" -map "[out]" -map 2:a -shortest -c:v libx264 -profile:v high -crf 18 -pix_fmt yuv420p -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc bt709 -c:a aac -b:a 128k -movflags +faststart reel.mp4
This adds a silent AAC track. If the video has its own sound, swap
-map 2:a
for
-map 0:a
.
在 HTML 中用标题和所需 Logo 构建一张透明的 1080 x 1920
overlay.png
,并截图保存。可自由设置样式的文字优于通过 ffmpeg 直接烧录文字。然后:
ffmpeg -y -i in.mp4 -loop 1 -i overlay.png -f lavfi -i anullsrc=r=48000:cl=stereo -filter_complex "color=c=0x0B0B0F:s=1080x1920:r=30[bg];[0:v]fps=30,scale=1080:-2,setsar=1[v];[bg][v]overlay=0:660:shortest=1[o];[o][1:v]overlay=0:0:shortest=1,scale=out_color_matrix=bt709:out_range=tv,format=yuv420p[out]" -map "[out]" -map 2:a -shortest -c:v libx264 -profile:v high -crf 18 -pix_fmt yuv420p -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc bt709 -c:a aac -b:a 128k -movflags +faststart reel.mp4
这会添加一条静音 AAC 音轨。如果视频自带声音,请将
-map 2:a
替换为
-map 0:a
。

Step 4: Check before upload

第 4 步:上传前检查

ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,pix_fmt,color_range,color_space -of compact reel.mp4
Pass means: video
h264
,
1080
x
1920
,
yuv420p
,
color_range=tv
,
bt709
, plus one
aac
audio stream. If you see
hevc
or
color_range=pc
, encode again. Then pull one frame from the middle and look at it at phone size.
ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,pix_fmt,color_range,color_space -of compact reel.mp4
检查通过意味着:视频为
h264
、分辨率为
1080 x 1920
、
yuv420p
、
color_range=tv
、
bt709
,并且包含一个
aac
音频流。如果看到
hevc
或
color_range=pc
,请重新编码。然后从视频中间提取一帧,以手机屏幕尺寸查看。

What I learned the hard way

经验教训

  • A phone recording is often HEVC and full range. Uploaded as is, it can come out washed out or re-encoded badly. Always export a fresh H.264, limited-range file, including after any edit.
  • A logo over footage vanishes on light frames. Put each logo (and its label) on its own dark rounded tile.
  • faststart matters. Without
    -movflags +faststart
    the file cannot start playing until it has fully loaded.
  • Keep the hook to two lines. Mine were short enough to read in a second: "This Mac launch" / "is 100% code".
  • **手机录制的视频通常采用 HEVC 和全范围色彩。**直接上传后,可能出现色彩发白或被不当重新编码。始终重新导出 H.264、limited-range 文件,即使只是进行过编辑也不例外。
  • **Logo 叠加在视频画面上时,在浅色帧中会消失。**请将每个 Logo(及其文字标签)放在独立的深色圆角底板上。
  • **faststart 很重要。**没有
    -movflags +faststart
    ,文件必须完全加载后才能开始播放。
  • **将 hook 控制在两行内。**我的文案短到一秒钟内就能读完:“This Mac launch” / “is 100% code”。