Recherche avancée

Médias (91)

Autres articles (50)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (9333)

  • FFmpeg / Create video / Add caption (timestamp) of each jpg file to generate mp4

    17 août 2012, par low

    I've got some pictures, as screenshot-1.jpg, ..., screenshot-345.jpg, cycle of automatic capture from my computer (cycle of 30 seconds). I use FFmpeg to generate a video mp4 format, but, I want to add on the video the timestamp of each jpg file.

    This is my command line of FFmpeg :

    ffmpeg.exe -f image2 -r 4 -i screenshot-%0d.jpg -b 512000 -s 3840x1200 -sameq video.mp4

    In this case, I can show the date/time during de video play.

    Thanks.
    Low

  • Undefined Reference - ffmpeg on android ndk

    28 décembre 2012, par Gabriel Simões

    I´ve spent many hours trying to figure out why I still get "undefined reference" when trying to link to ffmpeg.
    I´ve already read most if not all posts and sites about the subject, so I think I´m missing something little here and I hope you can help me.

    What I have :

    I´m using windows 7 + cygwin + crystax r4.
    I´ve compiled FFMPEG using RockPlayer's ffmpeg source plus some modifications I did (only to include / exclude demuxes, decoders, encoders, ...)
    After compiling, I get :

    • a new folder named armv5te, which includes :
    • a folder named "include" with all folders for each libs' .h
    • a folder named "lib" which includes all libs' .a
    • a shared library named libffmpeg.so (checked soname and it is libffmpeg)

    The shared library isn´t also placed on project/lib/armeabi/libffmpeg.so

    After compiling I tried to compile my project and link it. While my .cpp compiles ok, I get many undefined references.

    here is my build script :

    NDK=/cygdrive/c/Gabriel/Desenvolvimento/SDKs/Android/android-ndk-r4-crystax
    PLATFORM=$NDK/build/platforms/android-8/arch-arm/
    PREBUILT=$NDK/build/prebuilt/windows/arm-eabi-4.4.0


    function build_one
    {

    ./configure --target-os=linux \
       --prefix=$PREFIX \
       --enable-cross-compile \
       --extra-libs="-lgcc" \
       --arch=arm \
       --cc=$PREBUILT/bin/arm-eabi-gcc \
       --cross-prefix=$PREBUILT/bin/arm-eabi- \
       --nm=$PREBUILT/bin/arm-eabi-nm \
       --sysroot=$PLATFORM \
       --extra-cflags=" -O2 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums  -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \
       --disable-shared \
       --enable-static \
       --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog" \
       --disable-stripping \
       --disable-debug \
       --disable-symver \
       --disable-ffprobe \
       --disable-devices \
       --disable-avfilter \
       --disable-swscale \
       --disable-ffplay \
       --disable-ffserver \
       --disable-network \
           (many more ...)
       --enable-asm \
       $ADDITIONAL_CONFIGURE_FLAG

    #make clean
    make  -j4 install

    $PREBUILT/bin/arm-eabi-ar d libavcodec/libavcodec.a inverse.o

    $PREBUILT/bin/arm-eabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -soname libffmpeg.so -shared -nostdlib  -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a  -lc -lm -lz -ldl -llog  --warn-once  --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-eabi/4.4.0/libgcc.a

    }

    #arm v5
    CPU=armv5te
    OPTIMIZE_CFLAGS="-marm -march=$CPU"
    PREFIX=./android/$CPU
    ADDITIONAL_CONFIGURE_FLAG=
    build_one

    Here is my android.mk :

    LOCAL_PATH := $(call my-dir)

    #declare the prebuilt library
    include $(CLEAR_VARS)
    LOCAL_MODULE := ffmpeg-prebuilt
    LOCAL_SRC_FILES := $(LOCAL_PATH)/ffmpeg/android/armv5te/libffmpeg.so
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/ffmpeg/android/armv5te/include
    LOCAL_PRELINK_MODULE := true
    include $(PREBUILT_SHARED_LIBRARY)

    include $(CLEAR_VARS)
    LOCAL_MODULE    := audiocodec
    LOCAL_SRC_FILES := ffmpeg_audio.cpp
    LOCAL_SHARED_LIBRARY := libffmpeg
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/ffmpeg/android/armv5te/include
    LOCAL_LDLIBS    := -llog -ljnigraphics -lz -lm $(LOCAL_PATH)/ffmpeg/android/armv5te/libffmpeg.so
    include $(BUILD_SHARED_LIBRARY)

    The result :

    Compile++ thumb: audiocodec <= /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFM
    PEG/jni/ffmpeg_audio.cpp
    SharedLibrary  : libaudiocodec.so
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/obj/local/armeabi/objs/audi
    ocodec/ffmpeg_audio.o: In function `Java_gabriel_audioslower_pro_ffmpegDecoder_r
    eadSamples':
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:172: u
    ndefined reference to `avcodec_decode_audio3(AVCodecContext*, short*, int*, AVPa
    cket*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:178: u
    ndefined reference to `av_read_frame(AVFormatContext*, AVPacket*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/obj/local/armeabi/objs/audi
    ocodec/ffmpeg_audio.o: In function `Java_gabriel_audioslower_pro_ffmpegDecoder_s
    eekToPosMS':
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:147: u
    ndefined reference to `av_rescale_q(long long, AVRational, AVRational)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:150: u
    ndefined reference to `av_seek_frame(AVFormatContext*, int, long long, int)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:151: u
    ndefined reference to `avcodec_flush_buffers(AVCodecContext*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:152: u
    ndefined reference to `av_read_frame(AVFormatContext*, AVPacket*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/obj/local/armeabi/objs/audi
    ocodec/ffmpeg_audio.o: In function `Java_gabriel_audioslower_pro_ffmpegDecoder_c
    loseFile':
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:82: un
    defined reference to `avcodec_close(AVCodecContext*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:83: un
    defined reference to `av_free(void*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:84: un
    defined reference to `av_close_input_file(AVFormatContext*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/obj/local/armeabi/objs/audi
    ocodec/ffmpeg_audio.o: In function `Java_gabriel_audioslower_pro_ffmpegDecoder_o
    penAudioFile':
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:37: un
    defined reference to `av_open_input_file(AVFormatContext**, char const*, AVInput
    Format*, int, AVFormatParameters*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:44: un
    defined reference to `av_find_stream_info(AVFormatContext*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:52: un
    defined reference to `avcodec_find_decoder(CodecID)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:60: un
    defined reference to `avcodec_open(AVCodecContext*, AVCodec*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:67: un
    defined reference to `av_malloc(unsigned int)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:70: un
    defined reference to `av_read_frame(AVFormatContext*, AVPacket*)'
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/obj/local/armeabi/objs/audi
    ocodec/ffmpeg_audio.o: In function `JNI_OnLoad':
    /cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/jni/ffmpeg_audio.cpp:25: un
    defined reference to `av_register_all()'
    collect2: ld returned 1 exit status
    make: *** [/cygdrive/c/Gabriel/Desenvolvimento/Workspace/FFMPEG/obj/local/armeab
    i/libaudiocodec.so] Error 1

    Something interesting is that some functions from ffmpeg, as av_register_all(), do now show up on the list of undefined references.

    Any ideas on what I can do to fix it ? I´ve spent 3 days trying to make things work ..
    Thanks !

  • Mixing a FLV audio stream with a WAV background track, and converting to MP3 with SoX and FFmpeg

    7 septembre 2012, par tubbo

    I'm building a Flash-based recording application for a contracted web site. It streams the recorded voice (via SWF) to a Red5 server, then uses a combination of FFmpeg and SoX to compile the vocal audio with a lower-in-volume background music track. This all has to happen on-demand, that is, when a user "saves" his or her vocal recording.

    Here is an example command I will be running. Names have been changed to protect the innocent. The filenames describe their role in the final file :

    sox --combine mix -p --no-show-progress --norm "|ffmpeg -i /usr/share/red5/webapps/audiorecorder/stream/SPOKEN_VOICE.flv -t wav pipe:1" /var/www/ufiles/music/BACKGROUND_MUSIC.wav - | ffmpeg -i pipe:1 /var/www/ufiles/recordings/COMPILED_AUDIO_RECORDING.mp3

    When I run this command in the shell, this is what happens :

    $ sox --combine mix -p --no-show-progress --norm "|ffmpeg -i audioStream_1321399534128_21.flv -ar 44100 -ac 2 -t wav pipe:1" wrong.wav - | ffmpeg -i pipe:1 ~/www/trauma101.com/compiled.mp3
    ffmpeg version N-34884-g7575980, Copyright (c) 2000-2011 the FFmpeg developers
     built on Nov 15 2011 14:06:49 with gcc 4.4.5
     configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-x11grab --enable-libspeex
     libavutil    51. 25. 0 / 51. 25. 0
     libavcodec   53. 34. 0 / 53. 34. 0
     libavformat  53. 20. 0 / 53. 20. 0
     libavdevice  53.  4. 0 / 53.  4. 0
     libavfilter   2. 48. 1 /  2. 48. 1
     libswscale    2.  1. 0 /  2.  1. 0
     libpostproc  51.  2. 0 / 51.  2. 0
    ffmpeg version N-34884-g7575980, Copyright (c) 2000-2011 the FFmpeg developers
     built on Nov 15 2011 14:06:49 with gcc 4.4.5
     configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-x11grab --enable-libspeex
     libavutil    51. 25. 0 / 51. 25. 0
     libavcodec   53. 34. 0 / 53. 34. 0
     libavformat  53. 20. 0 / 53. 20. 0
     libavdevice  53.  4. 0 / 53.  4. 0
     libavfilter   2. 48. 1 /  2. 48. 1
     libswscale    2.  1. 0 /  2.  1. 0
     libpostproc  51.  2. 0 / 51.  2. 0
    [libspeex @ 0x1e36b20] Missing Speex header, assuming defaults.
    Input #0, flv, from 'audioStream_1321399534128_21.flv':
     Metadata:
       novideocodec    : 0
       server          : Red5 Server 1.0.0 RC2 Rev: 4295
       creationdate    : Tue Nov 15 15:25:41 PST 2011
       canSeekToEnd    : true
     Duration: 00:00:06.77, start: 0.000000, bitrate: 43 kb/s
       Stream #0:0: Audio: speex, 16000 Hz, 1 channels, s16
    Invalid duration specification for t: wav
    sox FAIL formats: can't open input pipe `|ffmpeg -i audioStream_1321399534128_21.flv -ar 44100 -ac 2 -t wav pipe:1': premature EOF

    I think the issue is stemming from the conversion from FLV to WAV in FFmpeg, and since it's being piped in it causes the whole process to fail. I always get that duration warning, but when FFmpeg outputs to a .wav file and the SoX command is run separately, I can still get a WAV from SoX and convert that to MP3 manually. I'd like to do all this in one line, piping the data between applications.

    What do I do ?