Vidu S2 试实时交互、素材规格和成片时长单独确认

文章导读
Vidu S2 这类流程在上手前,建议把三件事拆开确认:实时交互能不能在当前输入源和网络下跑通、素材本身是什么规格、导出成片是什么规格。这三件事的确认入口并不一样——实时交互看的是会话期间的输入输出表现,素材规格看的是文件元数据,成片属性看的是导出结果本身。混在一起判断,最常见的后果是素材做到一半才发现提交环节不接受,或者成片出来才发现比例或时长对不上,回头重做整批素材。
📋 目录
  1. Ⅰ 逐项登记素材属性:格式、比例、时长、有无音轨
  2. Ⅱ 导出一次,登记成片属性作为产出侧事实
  3. Ⅲ 两组属性对齐,标出真正的不一致项
  4. Ⅳ 每类不一致先试最小改动的处理方式
  5. Ⅴ 写成开工前检查项
A A

Vidu S2 这类流程在上手前,建议把三件事拆开确认:实时交互能不能在当前输入源和网络下跑通、素材本身是什么规格、导出成片是什么规格。这三件事的确认入口并不一样——实时交互看的是会话期间的输入输出表现,素材规格看的是文件元数据,成片属性看的是导出结果本身。混在一起判断,最常见的后果是素材做到一半才发现提交环节不接受,或者成片出来才发现比例或时长对不上,回头重做整批素材。

实时交互、素材规格、成片时长分别确认,判断依据只看三处:任务页面对输入的要求、素材文件的元数据、导出文件的元数据。建议先拿一份最小素材跑一次完整流程,拿到产出侧的真实属性再回头对齐素材侧。页面没有写明的上限和格式,不要按经验假设;先按最小改动试一次,验证方式是对同一条命令重新读一遍属性并逐项比对。边界是:本页不给出任何具体上限数值,以你实际看到的任务详情为准。

逐项登记素材属性:格式、比例、时长、有无音轨

先把素材侧的事实固定下来,不要凭预览播放器的观感判断。本地文件可以用 ffprobe、MediaInfo 或系统文件属性面板读取;从剪辑软件或其他平台导出的素材,除了读文件,还要在导出记录里确认当时的导出设置,因为文件元数据可能已经把设置改写过了。

需要记录的字段建议固定为这几个:容器格式、视频编码、宽高(分辨率)、显示宽高比、帧率、时长、音频编码、声道数、有无音轨。分辨率和宽高比要分开记,同一个宽高也可能是不同的显示比例,这两项含义不同。做实时交互接入时,还要额外记两项:输入帧率是否稳定、关键帧间隔大概多少,这两项会影响交互过程中的表现。

素材来源杂的时候,用前缀标注来源,比如 local-、export-、screen-、third-,并在备注里写清是否经过二次转码。同一份内容如果经过剪辑软件导出,即使分辨率看起来没变,编码和帧率也可能已经变了,这类要按新素材重新登记,而不是复用旧记录。

ffprobe -v error -show_entries stream=index,codec_type,codec_name,width,height,r_frame_rate,avg_frame_rate,sample_rate,channels -show_entries format=format_name,duration,size -of json input.mp4

把结果整理成一份可对比的记录,字段名保持统一,后面才能直接比对:

src_id=local-a
container=
video_codec=
width=
height=
dar=
fps=
duration_s=
audio_codec=
channels=
has_audio=

导出一次,登记成片属性作为产出侧事实

素材侧登记完之后,先跑一次最短流程拿到一个成片,不管当前素材看起来多合适。这一步的目的不是看画质,而是拿到能和素材侧对照的另一组数据。产出侧只认导出文件本身,播放页的预览参数和任务详情里的描述可以作为参考,但不能替代对文件属性的读取。

Vidu S2 试实时交互、素材规格和成片时长单独确认

查看方式和素材侧一致,对导出文件跑同一条 ffprobe 命令;如果平台只提供播放页,先下载到本地再读。需要比对的项目固定为:容器格式、视频编码、宽高、显示宽高比、帧率、时长、音频编码、声道数、有无音轨。同样的字段名加 out- 前缀记录,方便后面逐项对照。

实时交互不走文件导出这条路,就改为记录会话日志里能看到的输入输出参数:输入分辨率、输入帧率、是否带音轨、会话持续时长,以及交互过程中有没有出现明显的卡顿或重连。这些记录只能反映你这次的环境,不能当成通用上限。

两组属性对齐,标出真正的不一致项

把两组记录并排放,逐字段填一张对齐表,先别急着改素材:

字段素材侧产出侧是否一致影响
container
video_codec
width / height
dar
fps
duration_s
audio_codec / channels

不一致项按会不会挡流程排序,而不是按差异大小排序。第一档是会让任务直接失败或无法提交的:容器或编码不被接受、需要音轨但素材没有音轨、时长落在产出侧允许范围之外。第二档是能跑完但结果需要返工的:显示宽高比不匹配导致裁切或补边、帧率差异导致动作节奏和素材预览不一致。第三档是影响观感但不挡流程的:音频采样率、声道布局、文件体积。先把第一档处理掉,再考虑第二档。

Vidu S2 试实时交互、素材规格和成片时长单独确认

还要注意一类假不一致:编码名称不同但实际可解码,或者容器不同但内容能正常读取。这类先按现状提交一次,用产出的结果判断,而不是提前转码。

每类不一致先试最小改动的处理方式

比例、时长这类问题,最小的动作通常不是重新剪素材,而是换一种提交或转换方式:

  • 容器不一致:先试转封装,不重新编码。命令:ffmpeg -i input.mov -c copy out.mp4。转封装只换外壳,视频流不变。
  • 编码不被接受:这一步只能重编码,但先把素材截取一小段试,确认能被接受后再处理完整文件。
  • 比例不一致:先补边或裁切,不重新生成素材。补边用 pad,裁切用 crop,先在一小段上试效果。
  • 时长超出范围:先截取一段提交,确认流程通,再决定是分段还是重剪。命令:ffmpeg -i input.mp4 -t 8 -c copy clip.mp4。
  • 没有音轨:先加一条静音轨试,不重录。命令:ffmpeg -i input.mp4 -f lavfi -i 'anullsrc=channel_layout=stereo:sample_rate=48000' -shortest -c:v copy -c:a aac out.mp4。
  • 帧率不一致:先保持原帧率提交一次,观察产出结果,再决定是否需要转换帧率;转换帧率会改变帧的时间点,不要作为默认动作。

每一类改完之后都要重新导出一次,用同一条 ffprobe 命令读属性,只比对目标字段是否发生变化,同时确认其他字段没有被意外改动。比如加静音轨时用了 -c:v copy,视频编码和分辨率不应变;如果变了,说明命令写错了,回退重来。

写成开工前检查项

把上面的核对固化成几个可照抄的检查项,每条写成条件—动作—验证方式:

  1. 条件:拿到一批来源不同的素材。动作:逐份跑一次 ffprobe 并填写统一字段的记录。验证:每份记录里宽高、宽高比、帧率、时长、有无音轨都不为空。
  2. 条件:需要确认实时交互是否可用。动作:先用一段短输入跑一次会话,记录输入分辨率和帧率表现。验证:会话能完整结束,日志里有可读的输入输出参数;失败时回退到换一份编码更常见的素材再试一次。
  3. 条件:素材规格登记完成。动作:跑一次最短流程导出成片。验证:拿到导出文件并用同一条命令读出属性;失败时回退到检查素材是否能被当前流程读取。
  4. 条件:两组属性已对齐。动作:只挑第一档不一致项处理,每类按最小改动执行。验证:重新导出后目标字段已一致,其他字段未变化。
  5. 条件:第一档不一致项已清空。动作:再处理比例和帧率这类返工项。验证:产出结果的比例和时长与预期一致。

失败时的回退顺序是:先回到对齐表确认是哪一类不一致,再回到素材属性登记这一步重新读取原始文件,而不是在已经处理过的文件上继续叠加修改。如果素材本身的元数据读不出来,回退到换一份可读的素材副本或换一个导出设置重新导出,再走一遍登记。