FFmpeg を使用すると、次のいずれかを実行できます。
- ビルド済みの .lib/.dll ファイルを使用すると、Visual Studio で生成されたバイナリは av*.dll ファイルに依存します
- Microsoft 以外のコンパイラを使用して FFmpeg をソース コードから静的ライブラリにコンパイルし、Visual Studio プロジェクトにリンクします (この場合は LGPL/GPL ライセンスに注意してください)。
上記の項目 1 に従ってプロジェクトをビルドしました。バイナリで av*.dll 依存ファイルを使用して再配布し、それを機能させる必要があります。
Zeranoe の「静的」は、ライブラリが のようなバイナリに静的にリンクされていることを意味しますffmpeg.exe
。.lib
これをバイナリにリンクする静的ライブラリと混同しないでください。Zeranoe はそのようなものを提供しません。
Zeranoeには、次のようなアーカイブがあります。
- 「共有」ffmpeg-20120726-git-236ecc3-win32-shared.7z:
bin/avcodec-54.dll
bin/avutil-51.dll
- 等
- 「開発者」ffmpeg-20120726-git-236ecc3-win32-dev.7z:
lib/avcodec.lib
lib/avutil.lib
「共有」アーカイブには、DLL ライブラリへの動的リンクを使用してビルドされた FFmpeg があります。「Dev」アーカイブには、共有アーカイブで ffmpeg.exe が行うように、プロジェクトでリンクするために使用できる lib ファイルがあります。
したがって、Visual Studio プロジェクトは次のように単純化できます (完全なソースをここで参照してください)。
extern "C"
{
// NOTE: Additional directory ..\zeranoe.com\dev\include gets to the files
#include "libavcodec\avcodec.h"
}
// NOTE: Additional directory ..\zeranoe.com\dev\lib gets to the files
#pragma comment(lib, "avcodec.lib")
// NOTE: Be sure to copy DLL files from ..\zeranoe.com\shared\bin to the directory of
// the FFmpegApp.exe binary
int _tmain(int argc, _TCHAR* argv[])
{
_tprintf(_T("Trying avcodec_register_all... "));
avcodec_register_all();
_tprintf(_T("Done.\n"));
return 0;
}
"Dev" アーカイブをdev
Visual Studio プロジェクトのサブディレクトリに抽出dev\include
し、追加のインクルード パスに追加します。これはバイナリを構築するのに十分であり、以下に依存しav*.dll
ます:
これは、「共有」アーカイブを抽出し、そこから DLL をbin
バイナリのディレクトリにコピーするときです。そして、あなたのアプリはそこから動作します:
C:\FFmpegApp\Release>FFmpegApp.exe
Trying avcodec_register_all... Done.
2016 年 1 月 20 日更新: リポジトリ内のプロジェクトは、Visual Studio 2013 (古い VS 2010 コード) にアップグレードされ、現在の Zeranoe ビルドに対してチェックされます。サンプルと説明書は良好な状態を保っています。
Win32
Visual Studio でのビルドでは、Zeranoe の 32 ビット ファイルを使用することを想定していることに注意してください。64 ビット バージョンをビルドするには、それぞれのファイルをダウンロードし、Visual C++ プロジェクトをそれぞれセットアップしてビルドしますx64
(または、両方をダウンロードし、両方の構成をセットアップし、include/lib パスをそれぞれ構成するのが最適です)。以下のコメントで説明されているように、ビット数が一致しないとエラーが発生します。
2021 年 7 月 20 日更新: (以下のコメントから抜粋) Zeranoe ビルドは利用できなくなりました。公式に承認された優れた代替手段は、BtbN による Windows ビルドです。このチュートリアルには(...)-win64-gpl-shared.zip
またはファイルが必要です。(...)-win64-lgpl-shared.zip