【2024年】無劣化でFFmpegでTS動画をまとめてMP4に変換する方法
FFmpegはオープンソースの動画変換、再生で有名なフリーソフトとして重宝されています。
ただし、基本的にコマンドラインインターフェースから使うなのが、巷で言われるほど難しくはありません。
今回の記事では、初心者向け、FFmpegを利用してTSファイルをMP4に変換する方法をわかりやすく解説しましょう。
目次
TSをMP4に変換可能なソフト:VideoProc
FFmpegはTSファイルをMP4に変換することができるが、コマンド入力ミスでうまくいかないときがよくあります。
なので、初心者の方なら、FFmpegの代わりに、パソコンやコマンドの知識は不要で、もっと直感的で操作できる変換ソフト「VideoProc」をおすすめしたいです。
(1)TSファイルについての知識
TSとは、MPEG2 TS(トランスポートストリーム)の略称で、動画データを記録するファイル形式(コンテナ)の一つです。
標準のファイル拡張子は「.ts」「.mts」「.m2ts」「.m2t」となっています。
MPEG-2を多重化して伝送するため、サーバー上のビデオファイルをストリーミング配信でリアルタイムに再生するようなエラー補正に優れた方式です。
放送べース(地デジ、ネット配信、ビデオ・オン・デマンドなど)のファイルに使われています。
いま、Avgle、ミクチャ、YouTubeライブなどは、数秒毎に分割された.tsファイルを順番に一つずつサーバにアップすることで動画を配信するのです。
そのため、 一つの配信に対して、.tsファイルが大量に生成されています。
自分で使用する場合、それらの.tsファイルを一つのMP4ファイルに変換したら、保存も再生も便利になります。
(2)無劣化でFFmpegでTSをMP4に変換する方法
ごにょごにょしてきた細切れのTSファイルをまとめて一つのMP4ファイルに変換に使えるのが、FFmpegコマンドです。
次は、FFmpegでTSをMP4に変換する操作方法の説明に進みましょう。
FFmpegを使うにはコマンドプロンプトを起動する必要があります。
- 方法1:TSファイルの保存フォルダーを開いて、アドレスバーに「cmd」を入力します。
- 方法2:[Windowsボタン]+[R]を同時に押して、「cmd」を入力して「OK」をクリックします。
コマンドプロンプトがが起ち上がると、状況によって下記のコマンドを入力します。
1.TSファイルが数個〜数10個の場合、以下の基本コマンドを入力するのがOKです。
- ffmpeg -i "concat:index0.ts|index1.ts|index2.ts|index3.ts|index4.ts|index5.ts|index6.ts" -c copy output.mp4
-i:入力ファイルの指定します。
concat:複数のファイルを結合。ファイルを"|"で区切って指定することが必要です。
-c copy:オーディオとビデオをコピーします。
2.TSファイルが数10個以上の場合、以下の基本コマンドを入力するのが楽です。
- copy /b E:\ts\*.ts E:\live.mp4
copy:ファイルの結合コマンドです。
/b:バイナリファイルとして扱うためのオプションだが、テキストファイルの結合にもこのオプションを付与することで、文字コードや改行コードが弄られることなく結合することが可能です。
E:\ts\*.ts:Eドライブ→tsディレクトリ→すべてのtsファイル。
E:\live.mp4:出力ファイルの保存先、名前、形式を指定します。
3.この方法も少量のTSファイルをMP4に変換する方に向いています。
- ➊.まず、TSファイルの保存フォルダーを開いて、ここに新規txtファイルを作成します。
- ➋.新規txtを開いて、下記のフォーマットでインデックスファイルを記入します。ファイル件数分改行して記載します。
- ➌.次は、アドレスバーに「cmd」を入力して、FFmpegのコマンドプロンプトを起動します。
- ➍.最後は、以下の基本コマンドを入力してenterキーを押します。
- ffmpeg -f concat -i \name.txt -c copy output.mp4
一方、もっと洗練された動画を出力したい場合、高度なコマンドを入力してもいいです。
- ffmpeg -f concat -i name.txt -c:v copy -c:a copy -map 0:v -map 0:a output.mp4
-f:変換フォーマットを指定します。
-c:v copy ビデオコーデックをコピーする(無劣化)
-c:a copy オーディオコーデックをコピーする(無劣化)
-map 0:v ビデオファイルが複数存在する場合は全てのものを同梱します。
-map 0:a オーディオファイルが複数存在する場合は、全てのものを同梱します。
これで、ほぼ一瞬で無劣化結合(連結)されたファイルが完成します。
- ➊.FFmpegは、txtファイル内に記入したインデックスファイル名の順番(昇順)で結合するわけではなく、ファイルの並び替えで(上から下)で結合するのです。
- ➋.コマンドを実行中、警告メッセージをコマンドラインに出力してしまうことがあります。しょせん変換と出力が無事にできるので、それを無視しても構わないと思います。
ご注意
補充知識
FFmpegを利用して、MP4動画をTSに変換することもできます。
基本的コマンドは以下の通りです。
- ffmpeg -i .\video.mp4 output.ts
また、FFmpegで拡張子が.m3u8(m3u8テキスト+.ts動画を格納する)の動画URLを直接MP4に変換することもできます。
具体的なやり方:【高画質】M3U8(.ts動画)を一つのMP4に変換する方法!URLも対応!
(3)FFmpegでTSをMP4に変換する時発生しやすいトラブル
1.コマンドの入力中にミスをしてしまいます。
例えば、スラッシュ(/)とバックスラッシュ(\)は逆にしたり、不要なスペースが勝手に入ったりと、意図した入力後の操作ができません。
2.出力MP4ファイルの保存先がわからないので、どこにも見つからないです。
対処法1
FFmpegは基本的に第一引数がアウトプットファイルです、オプション指定は要りません
例えばA.mp4というファイルをB.flvに変換に変換したければ、コマンドは以下の通りです。
ffmpeg -i A.mp4 B.flv
B.flvを絶対パスで書けば好きなディレクトリに出力することができます。
対処法2
一方、好きなディレクトリからコマンドプロンプトを起動して結合を行うなら、出力ファイルはこの場所に保存されます。
3.ffmpeg -acodec copy -vcodec copyでTSファイルを変換するとサイズが小さくなることがあります。
それに対して、以下2つの方面から考えましょう。
- ➊.TSファイルには動画と音声以外のデータ(字幕等)を格納することができるので、動画と音声だけをコピーした場合には当然それ以外は失われます。
- ➋.動画と音声しか含まれないTSファイルであっても、上記コマンドを用いた場合には複数音声トラックのうち1トラックしかコピーされないので、サイズダウンが予想できます。
※ffmpegとセットになっているffprobeを用いれば、ファイルに格納されたデータの種類がわかるかもしれません。
もし、このサイズダウンが気になるなら、上記のように、-map 0:a、-map 0:vコマンドを使用して、TSに格納されたすべてのファイルを同梱して変換するのがいいです。
関連記事おすすめ:FFmpeg圧縮:高画質・無劣化で動画を編集・エンコードして、ファイルサイズを小さくする方法>>
(4)FFmpegの代わりに、もっと簡単なTSをMP4に変換する方法
必ずFFmpegにこだわっていなければ、TSをMP4に変換するにはもっと簡単な方法があります。
ここでは、初心者でも扱いやすく、動作も軽い動画変換ソフト「VideoProc」をおすすめします。
事前に、下記のダウンロードボタンをクリックして、VideoProcをお使いのパソコンにダウンロードして、インストールを完成します。
そして、次の操作に進みます。
step1VideoProcを起動してから、ホーム画面で「ビデオ」アイコンをクリックします。
step2画面左上のメニューから「動画フォルダ」をクリックして、TSファイルの保存フォルダーを選択して読み込みます。
step3画面の下部にある「出力」をクリックして、デバイスプロファイル、ウェブ動画プロファイル、通常の動画プロファイルなど様々な動画プロファイルが表示されるので、「MP4」を選択します。
step4画像で赤く囲んである「結合」にチェックを入れます。
step5最後に、画面右下の「Run」をクリックすると、動画の変換と出力が始まります。後は待つだけです。
FFmpegより、この動画の変換と出力がかなり高速で、今回作成した10分程度の動画はわずか数秒で出力が終わりました。
ただし、これはマシンスペックにかなり依存するので実際の速度はみなさんのPC次第です。