Recherche avancée

Médias (0)

Mot : - Tags -/protocoles

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (60)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (5925)

  • How would I dynamically link FFmpeg in a C# Project for use with FFMpegCore ?

    15 octobre 2024, par liamliam

    So far, I have FFMpegCore working in my project with a ffmpeg.exe dropped into the project directory. This works, but for LGPL license compliance FFmpeg requires dynamic linking :
    
Use dynamic linking (on windows, this means linking to dlls) for linking with FFmpeg libraries..

    


    While I understand the basic concept of dynamic vs static linking, my problem is likely a misunderstanding of how .dlls work and how they apply to C# and .NET.
    
Would it be possible to compile ffmpeg into a single .dll that could be accessed by FFMpegCore cross-platform ? From what I can gather in the source, FFMpegCore looks for an ffmpeg or ffmpeg.exe file in its configuration path.

    


    Is it possible to have .NET dynamically link FFmpeg and expose it to libraries for use or is that a complete misunderstanding and would I then need a wrapper library with different capabilities ?

    


    I've attempted to find the answer in the relevant documentation, but I found none for this specific use of either library. I suspect my problem might be a fundamental misunderstanding of how these tools work and work together.
My ideal result would be using FFMpegCore with an FFmpeg.dll that works cross-platform instead of the .exe.

    


    Edit 1 : @taratect's answer and graphic sent me down a path that cleared up quite a bit about exes and dlls. .Net compiles source code down to platform agnostic Intermediate Language in the form of a .dll or .exe(completely different to C++ variants of these files), which is executed by the Common Language Runtime using a Just In Time compiler to convert that Intermediate Language to Machine Code that can be run on the specific platform .Net is installed on. C++(FFmpeg) compiles directly to platform specific Machine Code (as shown in the graphic), confusingly in the form of a .dll or .exe (on Windows). .Net can indeed load and run machine code unmanaged by Common Language Runtime, since everything is run as Machine Code by the end, however memory and other complexities must then be managed by me, which seems to be what FFMpegCore does in wrapping the executable. I might still be confused/incorrect on some of this, unmanaged code is beyond my understanding so far.
This does more or less confirm that FFMpegCore probably can't be expected to use FFmpeg in the way I hoped and a better workaround might be having the user just supply an FFmpeg source or implement a downloader as part of installation so that I don't have to redistribute it at all.

    


  • gcc : Undefined Reference Error

    16 mars 2014, par jamie_y

    I would like to use a function 'ff_load_image' defined in ffmpeg/libavfilter/lavfutils.h.

    program.c

    #include "../ffmpeg/libavfilter/lavfutils.h"

    int main ()
    {
     uint8_t* data;

     int linesize, width, height, log_ctx;

     int i = ff_load_image(&data, &linesize, &width, &height, AV_PIX_FMT_RGB24, "blue.jpg", &log_ctx);
    }

    Running

    gcc -I$HOME/ffmpeg/include program.c -L$HOME/ffmpeg/lib -lavfilter -lavcodec -lavutil

    gives undefined reference errors.

    program.c: In function \u2018main\u2019:
    program.c:9: warning: passing argument 1 of \u2018ff_load_image\u2019 from incompatible pointer type
    ../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018uint8_t **\u2019 but argument is of type \u2018uint8_t *\u2019
    program.c:9: warning: passing argument 2 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
    ../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018int *\u2019 but argument is of type \u2018int\u2019
    program.c:9: warning: passing argument 3 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
    ../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018int *\u2019 but argument is of type \u2018int\u2019
    program.c:9: warning: passing argument 4 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
    ../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018int *\u2019 but argument is of type \u2018int\u2019
    program.c:9: warning: passing argument 5 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
    ../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018enum AVPixelFormat *\u2019 but argument is of type \u2018int\u2019
    program.c:9: warning: passing argument 7 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
    ../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018void *\u2019 but argument is of type \u2018int\u2019
    /home/jamiey/ffmpeg/lib/libavfilter.a(lavfutils.o): In function `ff_load_image':
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:38: undefined reference to `av_register_all'
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:40: undefined reference to `av_find_input_format'
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:41: undefined reference to `avformat_open_input'
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:66: undefined reference to `av_read_frame'
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:92: undefined reference to `avformat_close_input'
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:92: undefined reference to `avformat_close_input'
    /home/jamiey/ffmpeg/libavfilter/lavfutils.c:92: undefined reference to `avformat_close_input'
    /home/jamiey/ffmpeg/lib/libavcodec.a(frame_thread_encoder.o): In function `ff_frame_thread_encoder_free':
    /home/jamiey/ffmpeg/libavcodec/frame_thread_encoder.c:225: undefined reference to `pthread_join'
    /home/jamiey/ffmpeg/lib/libavcodec.a(frame_thread_encoder.o): In function `ff_frame_thread_encoder_init':
    /home/jamiey/ffmpeg/libavcodec/frame_thread_encoder.c:200: undefined reference to `pthread_create'
    /home/jamiey/ffmpeg/lib/libavcodec.a(pthread_frame.o): In function `ff_frame_thread_free':
    /home/jamiey/ffmpeg/libavcodec/pthread_frame.c:575: undefined reference to `pthread_join'
    /home/jamiey/ffmpeg/lib/libavcodec.a(pthread_frame.o): In function `ff_frame_thread_init':
    /home/jamiey/ffmpeg/libavcodec/pthread_frame.c:705: undefined reference to `pthread_create'
    /home/jamiey/ffmpeg/lib/libavcodec.a(pthread_slice.o): In function `ff_slice_thread_init':
    /home/jamiey/ffmpeg/libavcodec/pthread_slice.c:220: undefined reference to `pthread_create'
    /home/jamiey/ffmpeg/lib/libavcodec.a(pthread_slice.o): In function `ff_slice_thread_free':
    /home/jamiey/ffmpeg/libavcodec/pthread_slice.c:118: undefined reference to `pthread_join'
    /home/jamiey/ffmpeg/lib/libavutil.a(rational.o): In function `av_d2q':
    /home/jamiey/ffmpeg/libavutil/rational.c:115: undefined reference to `log'
    /home/jamiey/ffmpeg/libavutil/rational.c:118: undefined reference to `floor'
    /home/jamiey/ffmpeg/lib/libavutil.a(eval.o): In function `eval_expr':
    /home/jamiey/ffmpeg/libavutil/eval.c:183: undefined reference to `trunc'
    /home/jamiey/ffmpeg/libavutil/eval.c:182: undefined reference to `ceil'
    /home/jamiey/ffmpeg/libavutil/eval.c:181: undefined reference to `floor'
    /home/jamiey/ffmpeg/libavutil/eval.c:241: undefined reference to `pow'
    /home/jamiey/ffmpeg/libavutil/eval.c:177: undefined reference to `exp'
    /home/jamiey/ffmpeg/libavutil/eval.c:176: undefined reference to `exp'
    /home/jamiey/ffmpeg/libavutil/eval.c:287: undefined reference to `pow'
    /home/jamiey/ffmpeg/libavutil/eval.c:278: undefined reference to `floor'
    /home/jamiey/ffmpeg/lib/libavutil.a(eval.o): In function `av_strtod':
    /home/jamiey/ffmpeg/libavutil/eval.c:112: undefined reference to `pow'
    /home/jamiey/ffmpeg/libavutil/eval.c:103: undefined reference to `pow'
    /home/jamiey/ffmpeg/libavutil/eval.c:109: undefined reference to `pow'
    /home/jamiey/ffmpeg/lib/libavutil.a(eval.o): In function `parse_primary':
    /home/jamiey/ffmpeg/libavutil/eval.c:394: undefined reference to `sinh'
    /home/jamiey/ffmpeg/libavutil/eval.c:395: undefined reference to `cosh'
    /home/jamiey/ffmpeg/libavutil/eval.c:396: undefined reference to `tanh'
    /home/jamiey/ffmpeg/libavutil/eval.c:397: undefined reference to `sin'
    /home/jamiey/ffmpeg/libavutil/eval.c:398: undefined reference to `cos'
    /home/jamiey/ffmpeg/libavutil/eval.c:399: undefined reference to `tan'
    /home/jamiey/ffmpeg/libavutil/eval.c:400: undefined reference to `atan'
    /home/jamiey/ffmpeg/libavutil/eval.c:401: undefined reference to `asin'
    /home/jamiey/ffmpeg/libavutil/eval.c:402: undefined reference to `acos'
    /home/jamiey/ffmpeg/libavutil/eval.c:403: undefined reference to `exp'
    /home/jamiey/ffmpeg/libavutil/eval.c:404: undefined reference to `log'
    /home/jamiey/ffmpeg/libavutil/eval.c:405: undefined reference to `fabs'
    collect2: ld returned 1 exit status

    However, I was successful in running functions in other library, such as the ones in "ffmpeg/libavcodec/avcodec.h". Why is this happening to "ffmpeg/libavfilter/lavfutils.h" ?

  • gcc : Undefined Reference Error

    26 octobre 2024, par jamie_y

    I would like to use a function 'ff_load_image' defined in ffmpeg/libavfilter/lavfutils.h.

    



    program.c

    



    #include "../ffmpeg/libavfilter/lavfutils.h"

int main ()
{
  uint8_t* data;

  int linesize, width, height, log_ctx;

  int i = ff_load_image(&data, &linesize, &width, &height, AV_PIX_FMT_RGB24, "blue.jpg", &log_ctx);
}


    



    Running

    



    gcc -I$HOME/ffmpeg/include program.c -L$HOME/ffmpeg/lib -lavfilter -lavcodec -lavutil


    



    gives undefined reference errors.

    



    program.c: In function \u2018main\u2019:
program.c:9: warning: passing argument 1 of \u2018ff_load_image\u2019 from incompatible pointer type
../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018uint8_t **\u2019 but argument is of type \u2018uint8_t *\u2019
program.c:9: warning: passing argument 2 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018int *\u2019 but argument is of type \u2018int\u2019
program.c:9: warning: passing argument 3 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018int *\u2019 but argument is of type \u2018int\u2019
program.c:9: warning: passing argument 4 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018int *\u2019 but argument is of type \u2018int\u2019
program.c:9: warning: passing argument 5 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018enum AVPixelFormat *\u2019 but argument is of type \u2018int\u2019
program.c:9: warning: passing argument 7 of \u2018ff_load_image\u2019 makes pointer from integer without a cast
../ffmpeg/libavfilter/lavfutils.h:39: note: expected \u2018void *\u2019 but argument is of type \u2018int\u2019
/home/jamiey/ffmpeg/lib/libavfilter.a(lavfutils.o): In function `ff_load_image':
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:38: undefined reference to `av_register_all'
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:40: undefined reference to `av_find_input_format'
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:41: undefined reference to `avformat_open_input'
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:66: undefined reference to `av_read_frame'
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:92: undefined reference to `avformat_close_input'
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:92: undefined reference to `avformat_close_input'
/home/jamiey/ffmpeg/libavfilter/lavfutils.c:92: undefined reference to `avformat_close_input'
/home/jamiey/ffmpeg/lib/libavcodec.a(frame_thread_encoder.o): In function `ff_frame_thread_encoder_free':
/home/jamiey/ffmpeg/libavcodec/frame_thread_encoder.c:225: undefined reference to `pthread_join'
/home/jamiey/ffmpeg/lib/libavcodec.a(frame_thread_encoder.o): In function `ff_frame_thread_encoder_init':
/home/jamiey/ffmpeg/libavcodec/frame_thread_encoder.c:200: undefined reference to `pthread_create'
/home/jamiey/ffmpeg/lib/libavcodec.a(pthread_frame.o): In function `ff_frame_thread_free':
/home/jamiey/ffmpeg/libavcodec/pthread_frame.c:575: undefined reference to `pthread_join'
/home/jamiey/ffmpeg/lib/libavcodec.a(pthread_frame.o): In function `ff_frame_thread_init':
/home/jamiey/ffmpeg/libavcodec/pthread_frame.c:705: undefined reference to `pthread_create'
/home/jamiey/ffmpeg/lib/libavcodec.a(pthread_slice.o): In function `ff_slice_thread_init':
/home/jamiey/ffmpeg/libavcodec/pthread_slice.c:220: undefined reference to `pthread_create'
/home/jamiey/ffmpeg/lib/libavcodec.a(pthread_slice.o): In function `ff_slice_thread_free':
/home/jamiey/ffmpeg/libavcodec/pthread_slice.c:118: undefined reference to `pthread_join'
/home/jamiey/ffmpeg/lib/libavutil.a(rational.o): In function `av_d2q':
/home/jamiey/ffmpeg/libavutil/rational.c:115: undefined reference to `log'
/home/jamiey/ffmpeg/libavutil/rational.c:118: undefined reference to `floor'
/home/jamiey/ffmpeg/lib/libavutil.a(eval.o): In function `eval_expr':
/home/jamiey/ffmpeg/libavutil/eval.c:183: undefined reference to `trunc'
/home/jamiey/ffmpeg/libavutil/eval.c:182: undefined reference to `ceil'
/home/jamiey/ffmpeg/libavutil/eval.c:181: undefined reference to `floor'
/home/jamiey/ffmpeg/libavutil/eval.c:241: undefined reference to `pow'
/home/jamiey/ffmpeg/libavutil/eval.c:177: undefined reference to `exp'
/home/jamiey/ffmpeg/libavutil/eval.c:176: undefined reference to `exp'
/home/jamiey/ffmpeg/libavutil/eval.c:287: undefined reference to `pow'
/home/jamiey/ffmpeg/libavutil/eval.c:278: undefined reference to `floor'
/home/jamiey/ffmpeg/lib/libavutil.a(eval.o): In function `av_strtod':
/home/jamiey/ffmpeg/libavutil/eval.c:112: undefined reference to `pow'
/home/jamiey/ffmpeg/libavutil/eval.c:103: undefined reference to `pow'
/home/jamiey/ffmpeg/libavutil/eval.c:109: undefined reference to `pow'
/home/jamiey/ffmpeg/lib/libavutil.a(eval.o): In function `parse_primary':
/home/jamiey/ffmpeg/libavutil/eval.c:394: undefined reference to `sinh'
/home/jamiey/ffmpeg/libavutil/eval.c:395: undefined reference to `cosh'
/home/jamiey/ffmpeg/libavutil/eval.c:396: undefined reference to `tanh'
/home/jamiey/ffmpeg/libavutil/eval.c:397: undefined reference to `sin'
/home/jamiey/ffmpeg/libavutil/eval.c:398: undefined reference to `cos'
/home/jamiey/ffmpeg/libavutil/eval.c:399: undefined reference to `tan'
/home/jamiey/ffmpeg/libavutil/eval.c:400: undefined reference to `atan'
/home/jamiey/ffmpeg/libavutil/eval.c:401: undefined reference to `asin'
/home/jamiey/ffmpeg/libavutil/eval.c:402: undefined reference to `acos'
/home/jamiey/ffmpeg/libavutil/eval.c:403: undefined reference to `exp'
/home/jamiey/ffmpeg/libavutil/eval.c:404: undefined reference to `log'
/home/jamiey/ffmpeg/libavutil/eval.c:405: undefined reference to `fabs'
collect2: ld returned 1 exit status


    



    However, I was successful in running functions in other library, such as the ones in "ffmpeg/libavcodec/avcodec.h". Why is this happening to "ffmpeg/libavfilter/lavfutils.h" ?