Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP

Autres articles (78)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

Sur d’autres sites (4721)

  • Decoding a h264 (High) stream with OpenCV's ffmpeg on Ubuntu

    9 janvier 2017, par arvids

    I am working with a video stream (no audio) from an ip camera on Ubuntu 14.04. Also i am a beginner with Ubuntu and everything on it. Everything was going great with a camera that has these parameters (from FFMPEG) :

    Input #0, rtsp, from 'rtsp://*private*:8900/live.sdp': 0B f=0/0  
     Metadata:
       title           : RTSP server
       Stream #0:0: Video: h264 (Main), yuv420p(progressive), 352x192, 29.97 tbr, 90k tbn, 180k tbc

    But then i changed to a newer camera, which has these parameters :

    Input #0, rtsp, from 'rtsp://*private*/media/video2':0B f=0/0  
     Metadata:
       title           : VCP IPC Realtime stream
       Stream #0:0: Video: h264 (High), yuvj420p(pc, bt709, progressive), 1280x720, 25 fps, 25 tbr, 90k tbn, 50 tbc

    My C++ program uses OpenCV3 to process the stream. By default OpenCV uses ffmpeg to decode and display the stream with function VideoCapture.

    VideoCapture vc;
    vc.open(input_stream);
    while ((vc >> frame), !frame.empty()) {
      *do work*
    }

    With the new camera stream i get errors like these (from ffmpeg) :

    [h264 @ 0x7c6980] cabac decode of qscale diff failed at 41 38
    [h264 @ 0x7c6980] error while decoding MB 41 38, bytestream (3572)
    [h264 @ 0x7c6980] left block unavailable for requested intra mode at 0 44
    [h264 @ 0x7c6980] error while decoding MB 0 44, bytestream (4933)
    [h264 @ 0x7bc2c0] SEI type 25 truncated at 208
    [h264 @ 0x7bfaa0] SEI type 25 truncated at 206
    [h264 @ 0x7c6980] left block unavailable for requested intra mode at 0 18
    [h264 @ 0x7c6980] error while decoding MB 0 18, bytestream (14717)

    The image sometimes is glitched, sometimes completely frozen. After a few seconds to a few minutes the stream freezes completely without an error. However on vlc it plays perfectly. I installed the newest version (3.2.2) of ffmpeg player with

    ./configure --enable-gpl --enable-libx264

    Now playing directly with ffplay (instead of launching from source code with OpenCV function VideoCapture), the stream plays better, doesn’t freeze, but sometimes still displays warnings :

    [NULL @ 0x7f834c008c00] SEI type 25 size 896 truncated at 320=1/1  
    [h264 @ 0x7f834c0d5d20] SEI type 25 size 896 truncated at 319=1/1  
    [rtsp @ 0x7f834c0008c0] max delay reached. need to consume packet  
    [rtsp @ 0x7f834c0008c0] RTP: missed 1 packets
    [h264 @ 0x7f834c094740] concealing 675 DC, 675 AC, 675 MV errors in P frame
    [NULL @ 0x7f834c008c00] SEI type 25 size 896 truncated at 320=1/1  

    Changing the camera hardware is not an option. The camera can be set to encode to h265 or mjpeg. When encoding to mjpeg it can output 5 fps, which is not enough. Decoding to a static video is not an option either, because i need to display real time results about the stream. Here is a list of API backends that can be used in function VideoCapture. Maybe i should swithc to some other decoder and player ?
    From my research i conclude that i have these options :

    • Somehow get OpenCV to use the ffmpeg player from another directory, where it is compiled with libx264

    • Somehow get OpenCV to use libVlc instead of ffmpeg

    One example of switching to vlc is here, but i don’t understand it well enough to say if that is what i need. Or maybe i should be parsing the stream in code ? I don’t rule out that this could be some basic problem due to a lack of dependencies, because, as i said, i’m a beginner with Ubuntu.

    • Use vlc to preprocess the stream, as suggested here.

    This is probably slow, which again is bad for real time results.
    Any suggestions and coments will be appreciated.

  • Linking shared libraries (.so) in Android Studio 2.2.2

    22 novembre 2016, par fadi

    I am really stuck and desperate for an answer.
    I have looked pretty much everywhere online to solve this problem with no real success.

    Basically I have compiled ffmpeg for android and I am trying to use the (.so) files inside Android Studio 2.2.2.

    The problem is that I keep getting this error when I try to compile my code
    Please note that my code worked perfectly under MS Visual Studio and I am certain it works as it should.

    Compile ERROR Message

    I am thinking this error means that I am not linking my shared libraries (.so) files against my .cpp file (correct me if I am wrong).

    Things I tried :

    • I have tried including my .so files inside main/jniLibs, and still didn’t work.

    • I put the .so files inside app/libs, and still no success.

    • Provided linking rules in cmake for example :

      add_library(B SHARED IMPORTED)
      set_target_properties(B PROPERTIES
          IMPORTED_LOCATION src/main/jniLibs/armeabi-v7a/libavformat-55.so
      )
      include_directories(src/main/cpp/include/)
      target_link_libraries(native-lib B)

      This gave me another error which looks like this :

      Error:error: 'src/main/jniLibs/armeabi-v7a/libavformat-55.so', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so', missing and no known rule to make it

    Here is the structure of my project tree :

    Project structure

    I really need help.

  • Building FFMPEG on UBUNTU facing issue while compiling common.mak file

    9 juin 2016, par sumit singh

    I am compiling the ffmpeg library i am facing some issues while compiling this.

    I follow the steps of compilation form here.But i am failed to compile.
    The issues are as below.

    WARNING: /home/sumit/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
    libavcodec/bsf_list.c is unchanged
    libavformat/protocol_list.c is unchanged
    common.mak:26: *** unterminated call to function `foreach': missing `)'.  Stop.
    common.mak:26: *** unterminated call to function `foreach': missing `)'.  Stop.
    common.mak:26: *** unterminated call to function `foreach': missing `)'.  Stop.
    sumit@sumit-H81M-S:~/android-ndk-r10e/sources/ffmpeg$

    here is my build_android.sh file-

    #!/bin/bash

    NDK=$HOME/android-ndk-r10e

    SYSROOT=$NDK/platforms/android-19/arch-arm/

    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86

    function build_one

    {
    ./configure --prefix=$PREFIX --enable-shared --disable-static --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-doc --disable-symver --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- --target-os=linux --arch=arm --enable-cross-compile --sysroot=$SYSROOT --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS"
    $ADDITIONAL_CONFIGURE_FLAG
    make clean
    make
    make install
    }

    CPU=arm

    PREFIX=$(pwd)/android/$CPU

    ADDI_CFLAGS="-marm"

    build_one

    common.mak-

    #
    # common bits used by all libraries
    #

    # first so "all" becomes default target
    all: all-yes

    DEFAULT_YASMD=.dbg

    ifeq ($(DBG),1)
    YASMD=$(DEFAULT_YASMD)
    else
    YASMD=
    endif

    ifndef SUBDIR

    ifndef V
    Q      = @
    ECHO   = printf "$(1)\t%s\n" $(2)
    BRIEF  = CC CXX OBJCC HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES
    SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM

    MSG    = $@
    M      = @$(call ECHO,$(TAG),$@);
    $(foreach VAR,$(BRIEF), \
       $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))
    $(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
    $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))
    endif

    ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample

    # NASM requires -I path terminated with /
    IFLAGS     := -I. -I$(SRC_LINK)/
    CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)
    CFLAGS     += $(ECFLAGS)
    CCFLAGS     = $(CPPFLAGS) $(CFLAGS)
    OBJCFLAGS  += $(EOBJCFLAGS)
    OBJCCFLAGS  = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)
    ASFLAGS    := $(CPPFLAGS) $(ASFLAGS)
    CXXFLAGS   += $(CPPFLAGS) $(CFLAGS)
    YASMFLAGS  += $(IFLAGS:%=%/) -Pconfig.asm

    HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)
    LDFLAGS    := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)

    define COMPILE
          $(call $(1)DEP,$(1))
          $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<)
    endef

    COMPILE_C = $(call COMPILE,CC)
    COMPILE_CXX = $(call COMPILE,CXX)
    COMPILE_S = $(call COMPILE,AS)
    COMPILE_M = $(call COMPILE,OBJCC)
    COMPILE_HOSTC = $(call COMPILE,HOSTCC)

    %.o: %.c
       $(COMPILE_C)

    %.o: %.cpp
       $(COMPILE_CXX)

    %.o: %.m
       $(COMPILE_M)

    %.s: %.c
       $(CC) $(CCFLAGS) -S -o $@ $<

    %.o: %.S
       $(COMPILE_S)

    %_host.o: %.c
       $(COMPILE_HOSTC)

    %.o: %.rc
       $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<

    %.i: %.c
       $(CC) $(CCFLAGS) $(CC_E) $<

    %.h.c:
       $(Q)echo '#include "$*.h"' >$@

    %.ver: %.v
       $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ | sed -e 's/:/:\
    /' -e 's/; /;\
    /g' > $@

    %.c %.h: TAG = GEN

    # Dummy rule to stop make trying to rebuild removed or renamed headers
    %.h:
       @:

    # Disable suffix rules.  Most of the builtin rules are suffix rules,
    # so this saves some time on slow systems.
    .SUFFIXES:

    # Do not delete intermediate files from chains of implicit rules
    $(OBJS):
    endif

    include $(SRC_PATH)/arch.mak

    OBJS      += $(OBJS-yes)
    SLIBOBJS  += $(SLIBOBJS-yes)
    FFLIBS    := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS)
    TESTPROGS += $(TESTPROGS-yes)

    LDLIBS       = $(FFLIBS:%=%$(BUILDSUF))
    FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS)

    OBJS      := $(sort $(OBJS:%=$(SUBDIR)%))
    SLIBOBJS  := $(sort $(SLIBOBJS:%=$(SUBDIR)%))
    TESTOBJS  := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o)
    TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF))
    HOSTOBJS  := $(HOSTPROGS:%=$(SUBDIR)%.o)
    HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))
    TOOLS     += $(TOOLS-yes)
    TOOLOBJS  := $(TOOLS:%=tools/%.o)
    TOOLS     := $(TOOLS:%=tools/%$(EXESUF))
    HEADERS   += $(HEADERS-yes)

    PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))
    DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))
    STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))

    SRC_DIR    := $(SRC_PATH)/lib$(NAME)
    ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
    SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)
    SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)
    HOBJS        = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o))
    checkheaders: $(HOBJS)
    .SECONDARY:   $(HOBJS:.o=.c)

    alltools: $(TOOLS)

    $(HOSTOBJS): %.o: %.c
       $(COMPILE_HOSTC)

    $(HOSTPROGS): %$(HOSTEXESUF): %.o
       $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTLIBS)

    $(OBJS):     | $(sort $(dir $(OBJS)))
    $(HOBJS):    | $(sort $(dir $(HOBJS)))
    $(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
    $(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))
    $(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
    $(TOOLOBJS): | tools

    OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))

    CLEANSUFFIXES     = *.d *.o *~ *.h.c *.map *.ver *.ver-sol2 *.ho *.gcno *.gcda *$(DEFAULT_YASMD).asm
    DISTCLEANSUFFIXES = *.pc
    LIBSUFFIXES       = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a

    define RULES
    clean::
       $(RM) $(HOSTPROGS)
       $(RM) $(TOOLS)
    endef

    $(eval $(RULES))

    -include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_YASMD).d)