Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Sur d’autres sites (37)

  • FFmpeg for Android platform

    30 avril 2014, par Neeraj

    I am trying to create an android application that uses FFMpeg. For that, I downloaded the FFmpeg code(v 0.8.15) from http://www.ffmpeg.org/olddownload.html. And compiled the code as per instructions given at http://www.roman10.net/how-to-build-ffmpeg-for-android/

    As a result, .a files have been generated in Android/lib folder & .h files in android/include folder.

    But, when I try to create .so file of my Native code what uses this prebuilt FFmpeg library (.a files), it gives undefined reference errors.

    Please find my project’s code structure is given below.

    project path is /home/guest/Neeraj_temp/FFMpeg-Example

    At this path, I created two folders jni & prebuilt
    In prebuilt folder, I kept libavfilter.a, libavcodec.a, libavformat.a, libavutil.a, libswscale.a
    In jni folder, I kept one include folder that contains all .h folders (libavcodec, libavfilter, libavformat, libavutil, libswscale).

    api-example.c file is also kept in jni folder that uses FFmpeg’s APIs.
    & one Android.mk file in jni folder.

    Android.mk :-

    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE    := libFFmpeg
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/FFMpeg/include
    LOCAL_SRC_FILES := api-example.c
    LOCAL_LDLIBS += -L$(LOCAL_PATH)/../prebuilt -lavfilter -lavutil -lavformat -lavcodec -lswscale
    include $(BUILD_SHARED_LIBRARY)

    Error :

    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wavpack.c:689: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wavpack.o): In function `wv_unpack_stereo':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wavpack.c:604: undefined reference to `av_log'
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wavpack.c:608: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wavpack.o):/home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wavpack.c:1215: more undefined references to `av_log' follow
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wmavoice.o): In function `synth_block_fcb_acb':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:1359: undefined reference to `av_memcpy_backptr'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wmavoice.o): In function `synth_frame':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:1441: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wmavoice.o): In function `synth_superframe':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:1765: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wmavoice.o): In function `wmavoice_decode_packet':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:1919: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wmavoice.o): In function `wmavoice_decode_init':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:350: undefined reference to `av_log'
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:373: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wmavoice.o):/home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wmavoice.c:397: more undefined references to `av_log' follow
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(wnv1.o): In function `decode_frame':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/wnv1.c:81: undefined reference to `av_reverse'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(ws-snd1.o): In function `ws_snd_decode_frame':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/ws-snd1.c:70: undefined reference to `av_log'
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/ws-snd1.c:83: undefined reference to `av_log'
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/ws-snd1.c:79: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(xan.o): In function `xan_decode_frame':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/xan.c:568: undefined reference to `av_log'
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/xan.c:551: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(xan.o):/home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/xan.c:515: more undefined references to `av_log' follow
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(xan.o): In function `xan_unpack':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/xan.c:178: undefined reference to `av_memcpy_backptr'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(xl.o): In function `decode_frame':
    /home/guest/Neeraj_temp/ffmpeg-0.8.15/libavcodec/xl.c:60: undefined reference to `av_log'
    /home/guest/Neeraj_temp/FFMpeg-Example/jni/../prebuilt/libavcodec.a(xsubdec.o): In function `decode_frame'

    I have read a lot of blogs but still not able to get the solution. Kindly provide me the solution. How do I need to structure the code that I should not get these errors & get the code compiled.

    Thanks.

  • tests/checkasm : add exclude_guest for non-x86 linux perf

    9 avril, par J. Dekker
    tests/checkasm : add exclude_guest for non-x86 linux perf
    

    The exclude_guest option only has an effect on x86. Omitting
    'exclude_guest' defaults to zero which implies that you can count guest
    events should you run one. Some non-x86 kernels just ignore it, while
    others (e.g. the Asahi Linux kernels) require the user to explicitly set
    the option to 1, i.e. the only behaviour that makes sense when counting
    guest events isn't supported.

    Signed-off-by : J. Dekker <jdek@itanimul.li>

    • [DH] tests/checkasm/checkasm.c
  • How to transcode .mp4 files using ffmpeg celery rabbitMq in Amazon Linux ?

    11 mars 2017, par Srinivas 25

    I want to transcode .mp4, .flv files by using ffmpeg, celery and rabbitMQ. With the help of these tools i can able to transcode in localhost, where in
    my OS is ubuntu, but i am unable to do the same on AWS Linux for production
    Here is the code i am using to integrate ffmpeg, rabbitMQ and celery to transcode on Amazon Linux

    FFMPEG_PATH = '/usr/bin/ffmpeg'


    CELERY_BROKER_URL = 'amqp://guest:guest@awsuser:5672//'
    CELERY_ACCEPT_CONTENT = 'file'
    CELERY_RESULT_BACKEND = 'rpc://'
    CELERY_TASK_SERIALIZER = 'file'

    celery.py

    from __future__ import absolute_import
    import os
    from celery import Celery
    from afnity.settings import CELERY_BROKER_URL

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'afnity.settings')


    app = Celery('taskapp',
            broker=CELERY_BROKER_URL,
            include=['taskapp.tasks'])

    app.config_from_object('django.conf:settings', namespace='CELERY')


    if __name__ == '__main__':
    app.start()

    tasks.py

    from .celery import app

    @app.task
    def add()
    return(3+4d)