XinYu.
導覽
開發者
MCPCLI
語言
← 返回動態
實測2026年9月30日

剪過的參考影片為什麼被拒:本地能播,模型報 Bad Request

剪過的參考影片為什麼被拒:本地能播,模型報 Bad Request

有一類失敗特別折磨人:參考影片在自己電腦上播放完全正常,一提交生成就失敗,報錯只有一句 InvalidParameter: Bad Request,不說是哪個引數。換提示詞、換時長、重試多少次都一樣。

我們查到過一個確定的原因:這段影片是「剪了,但沒有重新匯出」的。

原因:檔案裡還留著剪掉的那一段

有些工具裁剪影片時並不真的刪掉畫面,只是在檔案裡記一句「從第 X 秒開始播」(術語叫 edit list),被剪掉的資料原樣留在檔案開頭。

  • 播放器認這句話,自動跳過開頭,所以你看著一切正常;
  • 模型那邊的解碼器不認,讀到開頭那一段解不出畫面的資料,直接報錯。

上游報錯的時候又不點名是哪個引數,所以兩頭都查不到問題在哪,只能反覆重試。

自己怎麼查

用 ffprobe(裝了 ffmpeg 就有)跑兩條命令:

# 1. 看第一個影片資料包的時間戳:負數 = 中招
ffprobe -v error -select_streams v:0 -show_packets -read_intervals "%+#1" \
  -of csv=p=0 -show_entries packet=pts_time 你的影片.mp4

# 2. 數幀和包:包比幀多 = 有解不出畫面的廢資料
ffprobe -v error -select_streams v:0 -count_frames -count_packets \
  -show_entries stream=nb_read_frames,nb_read_packets -of csv=p=0 你的影片.mp4

我們在本機復現了一次:拿一條正常影片,用「不重新編碼」的方式從第 3.3 秒剪掉開頭。

首包時間戳幀數 / 包數檔案標註的起始時間
正常影片01920 / 19200
快剪後的影片−3.3 秒482 / 6800

注意最後一列:檔案自己標註的起始時間仍然是 0,所以只看常規資訊是看不出問題的,要看第一個資料包。

自己怎麼修

在剪輯軟體裡重新匯出一次(匯出成新檔案,不是直接儲存),或者用 ffmpeg 重新編碼:

ffmpeg -i 你的影片.mp4 -c:v libx264 -crf 14 -preset medium -pix_fmt yuv420p \
  -c:a copy -movflags +faststart 修好的影片.mp4

重新編碼時,解碼器會按「從第 X 秒開始播」那句話執行,所以出來的正好是你剪好的那段。復現裡修好後是首包 0、482 幀 / 482 包、時長 8.03 秒,和剪完應有的一致。

⚠️ 不要用 -c copy -avoid_negative_ts make_zero。網上常見這個「不重新編碼的修法」,它確實能讓時間戳變正常,但會把剪掉的那段放回開頭:復現裡幀數從 482 變回 680,時長從 8 秒變成 11.3 秒。時間軸是乾淨了,但內容已經不是你剪好的那條。

在心宇上:上傳時自動處理

從 2026 年 9 月 19 日起,上傳影片時我們會先檢查第一個資料包的時間戳,是負數就自動重新編碼一次。編碼品質取得很高(crf 14),出問題的那段影片修復前後相似度是 45.6 dB,肉眼基本分不出。只處理有問題的檔案,正常檔案不會被重新編碼。

修復後,我們用同一段出過問題的影片、同樣的引數重新提交,一次通過。

如果你的影片是在這之前上傳的:舊檔案不會被自動修復,在節點上直接點重試也會沿用原來那份,依然失敗。把同一個檔案重新上傳一次就行,不用自己先重新匯出。

參考影片被拒的其他常見原因

如果時間戳正常,還可以對照這幾條:

  • 總時長超限:Seedance 2.5 的參考影片合計最長 30 秒,超出的話提交前就會提示。
  • 影片編輯的原片太短或太長:原片必須在 4 到 30 秒之間。
  • 參考圖比例:Seedance 要求參考圖的長寬比在 0.40 到 2.50 之間,詳見《Seedance 為什麼拒了你的參考圖》。

分享到