動画結合ツール
複数の動画を 1 本につなげます。形式がそろった動画は無劣化コピー、そろっていない動画は再エンコードで結合します。
対応する FFmpeg コマンド
現在の設定に対応するコマンドラインです。設定を変えるとリアルタイムで更新されます。
ffmpeg -i in0.mp4 -i in1.mp4 -filter_complex "[0:v]scale=trunc(iw/2)*2:trunc(ih/2)*2,fps=30,setsar=1[v0];[0:a]aresample=48000[a0];[1:v]scale=trunc(iw/2)*2:trunc(ih/2)*2,fps=30,setsar=1[v1];[1:a]aresample=48000[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -c:v libx264 -preset fast -crf 23 -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart output.mp4 次にやること
使い方
- 結合したい動画を追加2 本以上の動画(MP4・MOV・WebM・MKV など)を追加します。上から順に結合します。
- 結合方式を選ぶ同じ機器・同じ設定で撮った動画なら「無劣化コピー」、それ以外は「再エンコード」を選びます。
- 解像度・トランジションを設定再エンコードのときだけ使えます。トランジションの長さは 0.2〜5 秒で、初期値は 0.5 秒です。
- 結合を実行完了するとプレビューが表示され、ダウンロードできます。
おすすめ設定
うまくいかないとき
「無劣化コピーでは結合できません」と表示される
原因:映像の形式・解像度・色の形式・回転の情報、または音声の形式・サンプルレート・チャンネルが、1 本目と違う動画がある。コピーでつなぐと、映像が乱れたり、音が遅く低くなったりするファイルになるため、結合する前に止めます。つないだ後に、つなぎ目で映像が乱れると分かったときも止めます。
対処:結合方式が「再エンコード」に切り替わるので、もう一度結合のボタンを押してください。
クリップの境目で映像が一瞬止まる
原因:前のクリップの音声が映像より長い。つなぐと、その差の分だけ最後のコマが止まって見えます(コピーでも再エンコードでも同じ)。
対処:結合する前に、トリムで前のクリップの末尾を映像の長さに合わせて切ってください。
よくある質問
何本まで結合できますか?
本数の上限はありません。1 ファイル 500MB までです。すべての動画をブラウザのメモリに読み込むため、合計が大きいと途中で止まることがあります。長い動画は先に圧縮してください。
結合の順番を後から変更できますか?
はい。リストの ▲▼ ボタンで並べ替えられます。並びがそのまま結合順になります。
音声が片方の動画にしかない場合は?
「再エンコード」を選んでください。音声のないクリップには、同じ長さの無音を入れて結合します。無劣化コピーは、音声のある動画とない動画が混ざっていると結合できません。
無劣化コピーが失敗する条件は?
映像の形式・解像度・色の形式・回転の情報、音声の形式・サンプルレート・チャンネルのどれかが 1 本目と違うと、つないでも正しく再生できません。このツールは結合する前にこれらを比べ、違いがあれば止めて「再エンコード」に切り替えます。つないだ後も、つなぎ目の映像を読み取れるか確かめます。フレームレートは比べません(違う動画をつなぐと、途中でフレームレートが変わる動画になります)。
縦動画と横動画を混ぜたい
「再エンコード」を選びます。出力の向きと縦横比は 1 本目に合わせ、向きの違うクリップは黒い余白を付けて収めます。余白を付けたくない場合は、先に SNS 動画リサイズで向きをそろえます。
クロスフェードとディゾルブ、黒フェードの違いは?
クロスフェードは 2 つの映像を少しずつ重ねて切り替えます。ディゾルブは画素が点々とランダムに入れ替わります。黒・白フェードは一度黒か白を挟むため、場面の区切りがはっきりします。
結合後のファイルサイズは?
無劣化コピーなら、元の動画の合計に近くなります。再エンコードは H.264(CRF 23)で作り直すため、元より小さくなることも大きくなることもあります。
くわしい説明(設定の意味・制限・FFmpeg のコマンド)
設定の意味
使えるブラウザと制限
- 最大ファイルサイズ:1 ファイル 500MB(超えるファイルは追加されません)
- 無劣化コピーは、映像と音声の形式・解像度がそろった動画向けです(そろっていない動画は、結合する前に止めます)
- 本数が多い・長い動画は、ブラウザのメモリ不足で止まることがあります
同じ処理を FFmpeg のコマンドで
printf "file 'a.mp4'\nfile 'b.mp4'\n" > list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4 ffmpeg -i a.mp4 -i b.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" out.mp4 ffmpeg -i a.mp4 -i b.mp4 -filter_complex "[0:v][1:v]xfade=transition=fade:duration=0.5:offset=4.5,format=yuv420p[v];[0:a][1:a]acrossfade=d=0.5[a]" -map "[v]" -map "[a]" out.mp4