Recherche avancée

Médias (91)

Autres articles (29)

  • Qualité du média après traitement

    21 juin 2013, par

    Le bon réglage du logiciel qui traite les média est important pour un équilibre entre les partis ( bande passante de l’hébergeur, qualité du média pour le rédacteur et le visiteur, accessibilité pour le visiteur ). Comment régler la qualité de son média ?
    Plus la qualité du média est importante, plus la bande passante sera utilisée. Le visiteur avec une connexion internet à petit débit devra attendre plus longtemps. Inversement plus, la qualité du média est pauvre et donc le média devient dégradé voire (...)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Selection of projects using MediaSPIP

    2 mai 2011, par

    The examples below are representative elements of MediaSPIP specific uses for specific projects.
    MediaSPIP farm @ Infini
    The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...)

Sur d’autres sites (4292)

  • Using ffmpeg with C++ : Undefined symbols for architecture x86_64

    31 mars 2017, par JavaRunner

    I’m dealing with one example of FFMPEG called is "muxing.c".

    So I tried to compile that file with two Makefiles. The first one is for C-language :

    FFMPEG_LIBS=    libavdevice                        \
                   libavformat                        \
                   libavfilter                        \
                   libavcodec                         \
                   libswresample                      \
                   libswscale                         \
                   libavutil                          \

    CFLAGS := -Wall -g $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
    LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) -lm $(LDLIBS)

    SOURCES=        muxing                             \

    OBJS=$(addsuffix .o,$(SOURCES))

    all: $(OBJS) $(SOURCES)

    That makefile compiles well. But if I trying to move this code to C++ : I rename muxing.c to muxing.cpp and use this Makefile :

    CC=g++

    FFMPEG_LIBS=    libavdevice                        \
                   libavformat                        \
                   libavfilter                        \
                   libavcodec                         \
                   libswresample                      \
                   libswscale                         \
                   libavutil                          \

    CPPFLAGS := -Wall -g $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CPPFLAGS)
    LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) -lm $(LDLIBS)

    SOURCES=        muxing                             \

    OBJS=$(addsuffix .o,$(SOURCES))

    all: $(OBJS) $(SOURCES)

    I get a bunch of error like this :

    $ g++   muxing.o  -L/usr/local/Cellar/ffmpeg/3.2.4/lib -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -lm -o muxing
    Undefined symbols for architecture x86_64:
     "av_dict_set(AVDictionary**, char const*, char const*, int)", referenced from:
         _main in muxing.o
     "av_strerror(int, char*, unsigned long)", referenced from:
         av_make_error_string(char*, unsigned long, int) in muxing.o
     "avio_closep(AVIOContext**)", referenced from:
         _main in muxing.o
     "swr_convert(SwrContext*, unsigned char**, int, unsigned char const**, int)", referenced from:
         write_audio_frame(AVFormatContext*, OutputStream*) in muxing.o
     "av_dict_copy(AVDictionary**, AVDictionary const*, int)", referenced from:
         open_video(AVFormatContext*, AVCodec*, OutputStream*, AVDictionary*) in muxing.o
         open_audio(AVFormatContext*, AVCodec*, OutputStream*, AVDictionary*) in muxing.o
     "av_dict_free(AVDictionary**)", referenced from:
         open_video(AVFormatContext*, AVCodec*, OutputStream*, AVDictionary*) in muxing.o
         open_audio(AVFormatContext*, AVCodec*, OutputStream*, AVDictionary*) in muxing.o
     "av_rescale_q(long long, AVRational, AVRational)", referenced from:
         write_audio_frame(AVFormatContext*, OutputStream*) in muxing.o
     "av_compare_ts(long long, AVRational, long long, AVRational)", referenced from:
         _main in muxing.o
         get_video_frame(OutputStream*) in muxing.o
         get_audio_frame(OutputStream*) in muxing.o

    Is that mean those libs are not ready to work with x64 ? I strongly need to mix that code (muxing.c) with my C++ code because I have to render a video on the fly using ImageMagick (my code was written with C++) for the frames.

    How can I mix C++ and C in this case ?

    My env is : OS X 10.12.3

  • ffmpeg multiple input video in grid and simultaneous audio

    13 février 2023, par Hnusny Pleb

    i would like to copy a video into n videos in one grid :
best example : https://www.youtube.com/watch?v=lYKDTLGH-TQ&ab_channel=TheRabbit_123

    


    This is my code, its working, but problem is, the audio seems to be like its played by one version.. I want the "echo" thats created by a lot of files like on the video above.

    


    def create_4_in_one(number):
shutil.copy("start.mp4", f"video.mp4")
for i in range(number):
    shutil.copy("video.mp4", f"temp_videa/{i}.mp4")
    subprocess.call(f'ffmpeg -y -i video.mp4 -vf "scale=iw/2:ih/2" -c:a copy video_half.mp4',
                  shell=True)
    subprocess.call(f'ffmpeg -y -i video_half.mp4 -i video_half.mp4 -i video_half.mp4 -i video_half.mp4 -filter_complex "[0:v][1:v]hstack[t];[2:v][3:v]hstack[b];[t][b]vstack[v]; [0:a][1:a][2:a][3:a]amerge=inputs=4[a]" -map "[v]" -map "[a]" -map 0:a -map 1:a -map 2:a -map 3:a -c:a aac -b:a 128k -ac 2 -shortest output.mp4',
                  shell=True)
    os.remove("video.mp4")
    os.remove("video_half.mp4")
    os.rename('output.mp4', 'video.mp4')

os.remove("video.mp4")


    


    Thanks in advance.

    


  • Publish local .mp4 video from android to wowza using FFmpeg

    13 mars 2016, par Parth Doshi

    I am trying to publish a local .mp4 video from my sdcard to wowza using the ffmpeg java wrapper.

    I have used the library for executing ffmpeg commands on Android

    On Android, my code looks as follows :

    FfmpegController objController = new FfmpegController(MainActivity.this, new File("/tmp"));
                   //objController.installBinaries(MainActivity.this,true);
                   mFfmpegBin = objController.installBinary(MainActivity.this, R.raw.ffmpeg, "ffmpeg", true);
                   //no just extract the audio
                   ArrayList<string> cmd = new ArrayList<string>();

                   //-f dshow -i video="Integrated Camera" out.mp4
                   cmd.add(mFfmpegBin);
                   //cmd.add("-sample_fmts");
                   cmd.add("-re");
                   cmd.add("-i");      
                   cmd.add("/sdcard/sample.mp4");
                   cmd.add("-c");
                   cmd.add("copy");
                   cmd.add("-f");
                   cmd.add("flv");
                   cmd.add("rtsp://192.168.1.35:1936/live/myStream");

                   objController.execFFMPEG(cmd, new ShellUtils.ShellCallback() {

                       @Override
                       public void shellOut(String shellLine) {
                           // TODO Auto-generated method stub
                           System.out.println("shell out" + " "  +shellLine);
                       }

                       @Override
                       public void processComplete(int exitValue) {
                           // TODO Auto-generated method stub
                           System.out.println("process complete::" + " " +exitValue);

                       }
                   });

               }catch(Exception ex){
                   ex.printStackTrace();
               }
           }
    </string></string>

    Now, when I execute the command, I get the following logs

    shell out Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/sdcard/sample.mp4':
    shell out rtmp://192.168.1.35:1936/live/myStream: Protocol not found

    Why is the protocol not supported on Android. When I run the same ffmpeg command from windows command line using ffmpeg then it works fine.

    The command is,

    ffmpeg -re -i sample.mp4 -c copy -f flv rtmp ://192.168.1.35:1936/live/myStream

    Can please someone help ?