FFmpegを使って1080pで動画を保存・変換・録画する方法!m3u8のURLも対応!
FFmpegは、オーペンソースの動画・音声変換フリーソフトとして愛用者がいっぱいです。
多機能と高性能であるが、使い方にクセがあるので、初心者にとって高いハードルに感じられるものです。
今回の記事では、初心者向け、FFmpegで動画を1080pで保存する方法を分かりやすく解説します。
FFmpeg以外1080pで動画保存・変換・録画
FFmpegは1080pで動画をダウンロード・変換・録画することができるが、単なる【使いやすさ】を考えば、VideoProcというGUIのソフトをおすすめします。 VideoProcは、.m3u8のURLを1080pでダウンロード、動画を1080pに変換、1080pと同じレベルの高画質で画面・カメラ録画とかいろいろできます。UIがシンプルで分かりやすく、初心者も直感的に操作できます。
目次
(1)FFmpegのコマンドライン構文とオプションについて基本知識
ご存じの通り、FFmpegは、CUIプログラム(コマンド操作)なので、コマンドを入力またはバッチファイルとして実行しないと動作しません。
なので、FFmpegコマンドについての基本的な情報を、コマンドライン構文、引数、オプションも含めて先に知るべきです。
- まず、FFmpegコマンドの基本構文は以下の通りです。
-
「ffmpeg -i 入力ファイル名 出力ファイル名」
- 例えば、「123.avi」を「456.mp4」に変換したい場合、以下のコマンドと入力します。
-
ffmpeg -i 123.avi 456.mp4
そして、ビットレート、解像度、フレームレート、出力形式、保存先、画質などを指定して変換やダウンロード作業を行うには、様々なオプションをこの基本構文に追加することができます。
FFmpegで動画を1080pでダウンロード・変換するには最低限知っておけばいいオプションは、下記のものが挙げられます。
- -i:入力ファイル指定(.m3u8のURLも対応可能)
- -r:映像フレームレートの指定
- -b:映像ビットレートの指定
- -s:映像解像度の指定
- -aspect:アスペクト比の指定
- -vcodec:映像コーデックの指定
- -acodec :音声コーデックの指定
- -b:a:音声のビットレートを指定する(bitrate:audio)
- -vf:エフェクトの内容を指定する
- -vf scale:動画の幅と高さを指定する
- -vf pad:動画の表示領域と背景領域の大きさと位置やカラーを指定する
もっと読む:【初心者】FFmpegのダウンロードとインストール手順〜Windows/Mac/Linux>>
(2)FFmpegで.m3u8を1080pでダウンロードする方法
現在、ジャニーズネットオンライン、stream+イープラス、GYAO!、Twitch、Avgle、Tverなど様々な動画共有サイトは、HLS(m3u8+ts)という特殊な動画ストリーミングを採用してきます。
HLS形式で配信されているライブ動画は、拡張子がhttps://○○○playlist.m3u8となっているのです。
さて、FFmpegを使ってこの.m3u8で終わるURLから本編の動画を1080pでダウンロードするしましょう。
まず、FFmpegのフロントエンドを起動します。
- ➊.出力ファイルの保存場所を指定します。既存のフォルダーを選択するか、新規作成します。
- ➋.この保存フォルダーを開いて、アドレスバーに「cmd」を入力します。
これで、FFmpegのコマンドプロンプトウィンドウが表示されます。
- * [Windowsボタン]+[R]を同時に押してから、「cmd」を入力することでコマンドプロンプトも起動できるが、この方法で、指定した保存場所がわからず、出力ファイルを探すのに苦労した文句があるので初心者にあまりおすすめしません。
ご注意
1080pは、水平方向1920画素×垂直方向1080画素で、2.1メガピクセル(207万3600画素)となる映像規格です。
- 1080pの動画を取得するために、以下のコマンドを入力します。「Enter」キーを押したら、コマンドの実行が始まります。
-
ffmpeg -i “https://xxxxxx.m3u8” -vf scale=1920:1080 123.mp4
ここで、「-vf scale=1920:1080」は、ダウンロードしたm3u8動画を1920:1080という解像度で出力させるという意味です。
- また、コマンドラインに以下コマンドを入力することで同様な変換が実行されます。
-
ffmpeg -i “https://xxxxxx.m3u8” -vf "scale=-1:1080" 123.mp4
-vf "scale=-1:1080についての説明
「-vf "scale=-1:1080"」中の「-1」はアスペクト比を揃えて縦解像度に合わせるという意味です。
「-1」ではなく、「0」を入力する場合、オリジナルと同じ横解像度で、-nでnの倍数で割りきれるように繰り上げて調整するのです。
例えば、オリジナルな動画は3840×2160という高画質な解像度だったら、以下の通りに、オプションの数値によって異なる結果となります。
- ➊.-vf "scale=-1:1080" ⇒ 1920×1080で出力する
- ➋.-vf "scale=0:1080" ⇒ 3840×1080で出力する
- ➌.-vf "scale=-2:1080" ⇒ 1920×1080で出力する
- ➍.-vf "scale=-3:1080" ⇒ 1920×1080で出力する
- ➎.-vf "scale=-4:1080" ⇒ 1920×1080で出力する
もっと読む:【初心者】FFmpegを使い、生配信を保存する方法|わかりやすい>>
(3)FFmpegで画質を1080pに指定して変換・録画する方法
- オンライン動画ではなく、ビデオカメラや、iPhone&Androidなどの端末で撮影した動画に対して、1080pに変換するコマンドは以下の通りです。
-
例1:ffmpeg -i input.video -vf scale=1920:1080 output.mp4
-
例2:ffmpeg -i input.video -vf scale=-1:1080 output.mp4
ここで、input.videoは入力ビデオの名称+形式の組み合わせです。
output.mp4は、mp4形式でoutputという名称でファイルを書き出します。
もちろん、ビデオの名称は任意に指定できます。
- *素材となる動画は、撮影機器および撮影時の設定によって、普通は各種の解像度(3840×2160、1920x1080、1280x720、640x360など)で保存されているでしょうか。
- *元の解像度を問わず、いずれも1920×1080に変換したら、動画の画面はおかしくなることがあります。
- *なるべく、元の動画と比例的に解像度を1920×1080に拡大・縮小したほうが安心です。
ご注意
- それ以上、他のオプションも追加できます。例えば、
-
ffmpeg -i input.video -vf scale=-1:1080,setdar=4:3 output.mp4
ここで、「setdar=4:3」はアスペクト比を4:3に指定します。ご使用用途に合って、1:1、16:9などがよく使用されていま。
次は、FFmpegでデスクトップを録画する時、解像度を1920×1080に指定するコマンドを解説しましょう。
まず、必要な条件として、x11grabをWindowsパソコンにダウンロードとインストールします。
- おすすめのコマンドは以下の通りです。
-
ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264rgb -crf 0 -preset ultrafast output.mp4
個人的に言えば、ストリーミン再生のライブ配信や、デスクトップ上での動作を録画するには、FFmpegは面倒で使いにくいです。
それより、VideoProc、BandicamのようなGUIソフトはかなり使いやすいです。
特に、VideoProcは、動画ダウンロード、変換、録画、編集、圧縮すべてこれ一本に揃えているので、用途がいろいろあります。
大雑把に言えば、FFmpegでできることなんか、VideoProcも問題なく扱えます。
(4)FFmpegで1080pを720p・360pに変換する方法
ファイルサイズを小さくするために、少し画質を犠牲して、動画の解像度を1080pから720pや360pに変換することもあります。
どのようなコマンドを使えば良いかと、上記書いた内容を読んだらもう分かるでしょうか。
- 720pに変換する場合:
-
ffmpeg -i input.video -vf scale=-1:720 output.mp4
- 360pに変換する場合:
ffmpeg -i input.video -vf scale=-1:360 output.mp4
一方、高画質を求めるために、低解像度の動画を高解像度に変換したい方もいるようです。
結論から言えば、動画において、「低画質を高画質に変換」というのは物理的に不可能です。
「低解像度の動画」を「高解像度」に変換するってのは可能です。しかし、これによって、高画質に成る訳ではありません。
再生画面を拡大するとき、新たに付け足された部分に必要なピクセル数を増やすことができないからです。
むしろ、元の低解像度動画よりも、画質は劣化します。
当然、変換の設定によっては感じられない程度の劣化に成る可能性もあるが、確実に劣化はします。
広い画面にしたいって場合は、変換するくらいなら、再生時にプレイヤーの機能で拡大表示するのが一番いいです。