8

Visual Studio 2010 で ffmpeg を動作させようとしています。これまでのところ、すべての ffmpeg ヘッダーとライブラリが読み込まれており、エラーや警告は発生していません。

avcodec_register_all();
AVFormatContext *pFormatCtx = NULL;
char errbuf[256];
pFormatCtx = avformat_alloc_context();
int rv = avformat_open_input(&pFormatCtx, "myfile.ext", NULL, NULL);
if (rv!=0){                              
    av_strerror(rv, errbuf, sizeof(errbuf));
}

問題は、avformat_open_input が常に -1330794744 (errbuf="Protocol not found") を返すことです。32 ビット XP と 64 ビット W7 で x86 & x64 ヘッダーとライブラリを試しました。「myfile.ext」に入力したものは何でも(「file1.avi」、「file=c:\file1.avi」、「http://www.someweb.com/file1.avi」、さらには空の char* を試しました) ") 応答は常に "Protocol not found" です。何か案は?

4

3 に答える 3

1

彼が誰かを助けることができることを願っています。コードが Android と Linux では機能するが macOS では機能しないという同じ問題があり、av_register_all現在は非推奨になっているため ( FFMpeg バージョン > 4.0の場合)、discomurrayからの回答で問題が解決しませんでした。

私の場合にうまくいかなかった理由は、すでにlibavformatがシステムにインストールされていて/usr/local/lib/、残念ながら私の場合は正しく構成されていなかったためです (または、自分でコンパイルしたものとバージョンが一致しませんでした)。

私がしたことはDYLD_LIBRARY_PATH、コマンドを実行する前に、ビルドへのパスを (macOS) に追加したことです。

export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Users/xxx/projects/FFmpeg/libavformat

Linuxでは、同じことができますLD_LIBRARY_PATH

于 2019-02-05T17:18:23.777 に答える
0
try to change file path 
"/home/user/video.mp4" -> "file:/home/usr/video.mp4"


プロトコルがこのリンクをチェックしない限り、「:」文字をエスケープする必要がありますffmpeg-protocols#file

于 2019-06-07T10:50:12.233 に答える