【CnetOS】FFmpegをインストールする その2

【CnetOS】FFmpegをインストールする その2

動画を簡単に作成出来れば面白いかな?と思い試してみたFFmpeg。一筋縄ではいかないことがわかりました。

前回、「【CnetOS】FFmpegをインストールする」でFFmpegをCentOSにインストールし、この環境でmp4を作成しました。

作成したmp4はWindowsパソコンに移しダブルクリックしてみるとメディアプレーヤーで正常に動作しました。
なんだ簡単じゃん!なんて思いつつ、ブラウザでは見られるのかな?と試してみると。。。

再生されないんですね!?

ブラウザで動画を再生するには「H.264」タイプのmp4でないとダメ!

mp4(MPEG-4)には種類があるのは知っていましたが、今やブラウザでなんでもできると思っていたところ、H.264に対応していないと再生されないとは思ってもみなかった。

では、H.264形式のファイルを作ろうとコマンドを叩いたところ、こんなエラーが!


ffmpeg version 4.0.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
  configuration: --enable-gpl --enable-shared
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, image2, from 'sample.jpg':
  Duration: 00:00:00.12, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1024x768 [SAR 96:96 DAR 4:3], 25 fps, 25 tbr, 25 tbn, 25 tbc
Unknown encoder 'libx264'

「Unknown encoder ‘libx264’」libx264のライブラリが無いと。

ということで、x264のライブラリをインストールします。
インストールの手順は下記の通り。

FFmpegのライブラリインストール

1.x264のインストール

 
cd /usr/local/src
git clone git://git.videolan.org/x264
cd x264
./configure --enable-shared
make
make install

※ここで、「H.264」や「x264」とか何?どういう違いがあるの?と疑問に思った方もいると思います。実際自分も思いました。こちらにわかりやすい説明がありました。
要約すると、「H.264というのは、別名MPEG-4 AVCという動画圧縮の規格。x264というのは、実際にH.264という規格に従って動画を圧縮するソフトのこと」だそうです。

ついでにaacもインストールします。

2.fdk-aacのインストール

 
wget https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-0.1.6.tar.gz
cd /usr/local/src
tar xzf fdk-aac-0.1.6.tar.gz
cd fdk-aac-0.1.6
./configure
make
make install

※ちなみに「AAC」とは「MPEG‐2 オーディオ規格 の一方式であるAdvanced Audio Codingの略。MPEG‐2またはMPEG‐4で使われる音声圧縮方式。」です。
こちらのサイトを参照

3.FFmpegを再ビルド

 
cd /usr/local/src
cd ffmpeg-4.0.1
./configure --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264
make
make install

※ffmpeg-4.0.1は以前インストールした時の環境です。

 

これで、H.264でエンコード出来るようになりました。

 

ただ、次に新たな問題が発生しました。
上記の手順で環境を作っても、「スマートフォンのブラウザでmp4が再生されない」。

この対応は後日行います!

 

今回は、下記のサイトを参考にさせていただきました。
H.264とx264の違い
CentOS7 ffmpegをソースからインストール
エーエーシー (AAC)

最後に、参考にさせていただきましたサイトの先人の皆様。ありがとうございました。