XinYu.
ナビゲーション
開発者
MCPCLI
言語
← ニュースに戻る
実測2026/09/30

カットした参照動画が拒否される理由:再生はできるのにモデルは Bad Request

カットした参照動画が拒否される理由:再生はできるのにモデルは Bad Request

とくに厄介な失敗があります。参照動画は自分のパソコンでは普通に再生できるのに、生成すると毎回失敗し、エラーは InvalidParameter: Bad Request の一文だけで、どのパラメータが悪いのかも書かれていません。プロンプトや長さを変えても、何度リトライしても同じです。

原因の1つを突き止めました。その動画は、カットしたあと書き出し直していないものでした。

原因:カットした部分がファイルに残っている

ツールによっては、動画をカットしても映像を実際には削除せず、「X秒目から再生する」という指示(エディットリストと呼ばれます)をファイルに書き込むだけのものがあります。カットされたデータは、ファイルの先頭にそのまま残ります。

  • プレーヤーはこの指示に従って先頭を飛ばすので、見た目には何の問題もありません。
  • モデル側のデコーダーはこの指示を読まず、先頭にある映像に戻せないデータを読んで失敗します。

上流のエラーもパラメータ名を示さないので、どちら側からも原因が見えず、リトライを繰り返すしかなくなります。

自分で確認する方法

ffprobe(ffmpeg に含まれています)で2つのコマンドを実行します。

# 1. 最初の映像パケットのタイムスタンプ:マイナスなら該当
ffprobe -v error -select_streams v:0 -show_packets -read_intervals "%+#1" \
  -of csv=p=0 -show_entries packet=pts_time your-video.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 your-video.mp4

手元で再現しました。普通の動画を用意し、再エンコードせずに先頭3.3秒をカットしています。

最初のパケットのタイムスタンプフレーム数 / パケット数ファイルに記録された開始時刻
普通の動画01920 / 19200
簡易カットした動画−3.3秒482 / 6800

最後の列に注目してください。ファイル自身の開始時刻は0のままなので、通常のメタデータを見ても問題は見つかりません。最初のパケットを確認する必要があります。

自分で直す方法

編集ソフトからもう一度書き出す(上書き保存ではなく、新しいファイルとして書き出す)か、ffmpeg で再エンコードします。

ffmpeg -i your-video.mp4 -c:v libx264 -crf 14 -preset medium -pix_fmt yuv420p \
  -c:a copy -movflags +faststart fixed-video.mp4

再エンコードでは、デコーダーが「X秒目から再生する」という指示に従うので、カット後の部分だけがそのまま出てきます。再現では、修正後は最初のパケットが0、482フレーム / 482パケット、長さ8.03秒となり、カット後にあるべき状態と一致しました。

⚠️ -c copy -avoid_negative_ts make_zero は使わないでください。再エンコードしない修正方法としてよく紹介されていて、確かにタイムスタンプは正常に見えるようになりますが、カットした部分を先頭に戻してしまいます。再現では、フレーム数が482から680に戻り、長さも8秒から11.3秒になりました。タイムラインはきれいになっても、中身はもうカットしたクリップではありません。

XinYu では:アップロード時に自動で修正

2026年9月19日から、アップロードされた動画は最初のパケットのタイムスタンプを確認し、マイナスなら自動で高画質(crf 14)に再エンコードしています。問題が起きた元の動画では、修正前後の類似度は 45.6 dB で、見た目ではほぼ区別できません。問題のないファイルが再エンコードされることはありません。

修正後、問題のあった同じ動画を同じ設定で送り直したところ、1回で通りました。

それより前にアップロードした動画の場合、古いファイルは自動では修正されません。ノードでリトライしても古いファイルが使われるため、失敗が続きます。**同じファイルをもう一度アップロードするだけで大丈夫です。**事前に書き出し直す必要はありません。

参照が拒否される、ほかのよくある原因

タイムスタンプに問題がなければ、次の点も確認してください。

  • 合計の長さが上限を超えている:Seedance 2.5 の参照動画は合計30秒までです。超えている場合は送信前に表示されます。
  • 動画編集の元動画が短すぎる・長すぎる:動画編集の元動画は4〜30秒である必要があります。
  • 参照画像のアスペクト比:Seedance の参照画像はアスペクト比 0.40〜2.50 である必要があります。詳しくはこちらの記事をご覧ください。

共有

カットした参照動画が拒否される理由:再生はできるのにモデルは Bad Request | XinYu AI