オーディオとビデオを支える技術(5) - ffmpegを使用する
オーディオとビデオの開発で最も重要なことは、エンコードとでコードの操作です。
h.264を例にとると、h.264のエンコードを自分で実装したい場合は、h.264について十分に理解する必要があります。
まずh.264のドキュメントを確認する必要があります。このドキュメントは、300ページに及ぶようです。(まだ読んでいません)
気になる方はこの下のリンクからh.264の仕様書を見学に行ってください。
https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.264-200305-S!!PDF-E&type=items
このことを考えて、あなたは、デコーダー、エンコダーを、初めから書きますか?忘れてください。
幸い、h.264エンコーダーは、誰かが作成してくれており、ソースコードも提供されています。主流なh264エンコーダーには、x264,t264などがあります。
自分は、研究や、エンコーダーの作成を行うつもりは、ないのでh.264のマニュアルを読む必要はありません。
自分たちにとって必要なことは、マニュアルの場所を確認しておくこと、必要な時にh.264のデータ形式を確認することです。
優れたプログラムは、開発できる限り規制のものを使用し、エネルギーを削減し、時間を削減し、安定性を改善する必要があります。
t264およびx264は、h.264をエンコード、デコードするためのライブラリーです。通常は、x.264を使います。しかし、これらのライブラリーは、1つの形式しかエンコードできません。そのため最初は、複数の形式をエンコード、デコードできるffmpegを使用します。
ffmpegは、さまざまなビデオコーデックを統合するライブラリーです。汎用的なツールといえます。
ビデオの取得、ビデオのエンコードから、ビデオの送信まで、ffmpegで完成され、さらにffmpegは、クロスプラットフォームであり、windows、Linux、Andorid、IOSなどの主流なOSで使えます。
さてffmpegの使用方法を開始しましょう
1. ffmpegの取得
ffmpegのダウンロードを行います。
開くと次のようなサイトに飛びます。
2020年6月25日現在の様子がこのようになります。 自分の知る限り、この前にも3度ほどサイトのデザインが変更されているため、将来的にこのような画面になるとは、限りません。
一番上のバージョンの設定を行い 2つ目にOSを選択します。 3つ目にライブラリーの形式を設定してダウンロードします。
自分の開発環境に合わせてdev開発者向けのライブラリーをダウンロードします。
画像のように設定します。
2. プロジェクトにffmpegを導入します。
Qt Createrを開きます。
純粋なc++ファイルを作ります。
今回は、ffmpegtestと名前を作ります。
ダウンロードしたffmpegフォルダーの中にあるincludeとlibをコピーして、作成したプロジェクトの中にffmpegファイルを追加してその中に2つのファイルを入れます。
QtCreaterでプロジェクト構成ファイルffmpegtest.proを変更します
INCLUDEPATH += $$PWD/ffmpeg/include LIBS += \ $$PWD/ffmpeg/lib/avcodec.lib \ $$PWD/ffmpeg/lib/avdevice.lib \ $$PWD/ffmpeg/lib/avfilter.lib \ $$PWD/ffmpeg/lib/avformat.lib \ $$PWD/ffmpeg/lib/postproc.lib \ $$PWD/ffmpeg/lib/swresample.lib \ $$PWD/ffmpeg/lib/swscale.lib \
main.cppに書き込みます。
#include <iostream> using namespace std; extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" } int main() { cout << "Hello FFmpeg!" << endl; unsigned version = avcodec_version(); cout << "version is:" << version; return 0; }
このまま固まって動かないようです。
ffmpegの実行ファイルを入れていませんでした。
さっきのサイトから実行ファイルをダウンロードしてきます。
3番目の値をsharedに変更してダウンロードします。
Cドライブにダウンロードしたファイルを展開します。
コントロールパネル->システム->システムの詳細設定と進んで環境変数のpathに先ほど追加したffmpegファイルのbinを追加します。
再び実行すると、
ちゃんと実行することができました。
ソースコードです。
シリーズ一覧 nakadasanda.hatenablog.jp