Question

J'essaye de compiler FFMPEG pour prendre en charge un seul type de vidéo (* .mp4).

Tout fonctionne lorsque je compile pour tous, mais je ne veux pas de surcroît de frais lorsque je n'utiliserai qu'un seul format.

Voici ma compilation FLAGS maintenant (ne fonctionne pas pour MP4).Je suis sûr qu'il y a d'autres codecs / décodeurs que je dois activer spécifiquement, mais j'ai juste du mal à les trouver.

Directives du compilateur affichant les indicateurs de construction ci-dessous:

FLAGS="$FLAGS --disable-everything"
FLAGS="$FLAGS --enable-encoder=mpeg4video" ## This is the question, what all needs enabling?

Je ne connais tout simplement pas assez bien les normes vidéo pour savoir exactement quels codecs / encodeurs / etc. activer.

av_register_all();
avdevice_register_all();

byteCtx = av_alloc_put_byte(buffer, BUFFER_SIZE, 0, f, ReadFunc, NULL, SeekFunc);
if (!byteCtx) {
    return;
}
// Open video file (here's the failure, doesn't happen when compiled for all)
inputFormat = av_find_input_format("MP4");
if (!inputFormat) {
    LOGE(ANDROID_LOG_ERROR, "NDK:", "Null inputformat!");
    return;
}
Était-ce utile?

La solution

Voici les DRAPEAUX appropriés pour construire mes bibliothèques avec seulement ce dont j'avais besoin.Il peut y en avoir un ou deux qui ne sont toujours pas nécessaires, mais la taille de la bibliothèque est désormais gérable.

    FLAGS="$FLAGS --disable-everything"
FLAGS="$FLAGS --enable-decoder=mpeg4 --enable-decoder=mpegvideo"
FLAGS="$FLAGS --enable-decoder=aac --enable-decoder=h264"
FLAGS="$FLAGS --enable-parser=aac --enable-parser=mpeg4video"
FLAGS="$FLAGS --enable-parser=mpegaudio --enable-parser=mpegvideo"
FLAGS="$FLAGS --enable-parser=ac3 --enable-parser=h261"
FLAGS="$FLAGS --enable-parser=h264 --enable-parser=vc1"
FLAGS="$FLAGS --enable-demuxer=mpegvideo --enable-demuxer=aac"
FLAGS="$FLAGS --enable-demuxer=m4v --enable-demuxer=mov"
FLAGS="$FLAGS --enable-demuxer=h264 --enable-demuxer=vc1"
FLAGS="$FLAGS --enable-muxer=h264 --enable-muxer=mpeg2video"
FLAGS="$FLAGS --enable-muxer=mp4 --enable-muxer=mov"
FLAGS="$FLAGS --enable-protocol=file"
FLAGS="$FLAGS --enable-indev=v4l --enable-indev=v4l2"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top