Recherche avancée

Médias (0)

Mot : - Tags -/médias

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

Autres articles (29)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • 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

  • Participer à sa documentation

    10 avril 2011

    La documentation est un des travaux les plus importants et les plus contraignants lors de la réalisation d’un outil technique.
    Tout apport extérieur à ce sujet est primordial : la critique de l’existant ; la participation à la rédaction d’articles orientés : utilisateur (administrateur de MediaSPIP ou simplement producteur de contenu) ; développeur ; la création de screencasts d’explication ; la traduction de la documentation dans une nouvelle langue ;
    Pour ce faire, vous pouvez vous inscrire sur (...)

Sur d’autres sites (5468)

  • Duration of wav file saved in S3 using AWS Lambda

    3 juin 2021, par Salim Shamim

    Objective

    


    To calculate the duration of a wav file which is saved in S3 by AWS Lambda using node.js. I had to add ffmpeg and ffprobe executable inside a lambda layer (Downloaded linux-64 version from here). These files could be found in /opt folder on lambda file system.

    


    What I have tried

    


    I have been trying using ffprobe in numerous ways, but I get Invalid Data as error.
Here's one example

    


    const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const fs = require('fs');
const ffmpeg = require('fluent-ffmpeg');

exports.handler = async function(event) {
    let path = await load();
    console.log(`Saved Path ${path}`);

    ffmpeg.setFfmpegPath('/opt/ffmpeg');
    ffmpeg.setFfprobePath("/opt/ffprobe");

    let dur = await duration(path).catch(err => {
        console.log(err);
    })
    console.log(dur);
}


function duration(path) {
    return new Promise((resolve, reject) => {
        ffmpeg(path).ffprobe(path, function(err, metadata) {
            //console.dir(metadata); // all metadata
            if (err) {
                reject(err);
            }
            else {
                resolve(metadata.format.duration);

            }
        });
    })
}

async function listFiles(path) {
    console.log('list files');
    return new Promise((resolve, reject) => {
        fs.readdir(path, (err, files) => {
            if (err) {
                console.error('Error in readdir');
                reject(err);
            }
            else {
                console.log('recieved files');
                resolve(files);
            }

        });

    });

}

async function load() {
    return new Promise((resolve, reject) => {
        let params = {
            Key: 'Fanfare60.wav',
            Bucket: 'samplevideosshamim'
        };
        console.log(`Getting s3 object : ${JSON.stringify(params)}`);
        s3.getObject(params, (err, data) => {
            if (err) {
                console.error(err);
                reject(err);
            }
            else if (data) {
                console.log('Recieved Data');
                let path = `/tmp/${params.Key}`;
                console.log('Path: ' + path);
                fs.writeFileSync(path, data.body);
                resolve(path);
            }
        });
    });

}


    


    Error :

    


    Error: ffprobe exited with code 1&#xA;ffprobe version 4.2.1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2007-2019 the FFmpeg developers&#xA;  built with gcc 6.3.0 (Debian 6.3.0-18&#x2B;deb9u1) 20170516&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;/tmp/Fanfare60.wav: Invalid data found when processing input&#xA;&#xA;    at ChildProcess.<anonymous> (/var/task/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22)&#xA;    at ChildProcess.emit (events.js:314:20)&#xA;    at ChildProcess.EventEmitter.emit (domain.js:483:12)&#xA;    at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)&#xA;</anonymous>

    &#xA;

    I am guessing it doesn't support wav format, but internet searches provide no proof of that.

    &#xA;

    A point to note here is, I was able to get the duration of a local file when I ran this code on my local machine, but I have a windows machine, so perhaps only linux executable of ffprobe has issue ?

    &#xA;

    Possible Solutions I am looking for

    &#xA;

      &#xA;
    1. Is there a way to specify format ?
    2. &#xA;

    3. Can I use a different library (code example for the same) ?
    4. &#xA;

    5. Any possible way to get duration of a wav file in the mentioned scenario (AWS Lambda NodeJS and S3 file (private file) ?
    6. &#xA;

    &#xA;

  • FFMPEG build on Windows using MSVC - make fails

    28 août 2024, par Maya Sela

    I am trying to build FFMPEG on Windows with MSVC. I am following this guide.
    &#xA;I have managed to setup the environment in order to configure successfully, but make doesn't work.
    &#xA;From VS2013 x64 Native Tools Command Prompt I run

    &#xA;

    msys2_shell.cmd -use-full-path&#xA;

    &#xA;

    and from msys2_shell.cmd I go to the ffmpeg folder and run

    &#xA;

    mingw32-make&#xA;

    &#xA;

    which outputs :

    &#xA;

    awk: cmd. line:1:                                                                                                        ^ syntax error&#xA;awk: cmd. line:1: /including/ { sub(/^.*file: */, ""); gsub(/\/, "/"); if (!match($0, / /)) print "libavdevice/alldevices.o:", $0 }&#xA;awk: cmd. line:1:                                                                                                           ^ unterminated string&#xA;ffbuild/common.mak:67: recipe for target &#x27;libavdevice/alldevices.o&#x27; failed&#xA;mingw32-make: *** [libavdevice/alldevices.o] Error 1&#xA;

    &#xA;

    Some more info :

    &#xA;

    $ mingw32-make --version&#xA;GNU Make 3.82.90&#xA;Built for i686-pc-mingw32&#xA;Copyright (C) 1988-2012 Free Software Foundation, Inc.&#xA;License GPLv3&#x2B;: GNU GPL version 3 or later /gnu.org/licenses/gpl.html>&#xA;This is free software: you are free to change and redistribute it.&#xA;There is NO WARRANTY, to the extent permitted by law.&#xA;

    &#xA;

    FFMPEG snapshot version N-100459-ga7f9b3b
    &#xA;The Makefile :

    &#xA;

    MAIN_MAKEFILE=1&#xA;include ffbuild/config.mak&#xA;&#xA;vpath %.c    $(SRC_PATH)&#xA;vpath %.cpp  $(SRC_PATH)&#xA;vpath %.h    $(SRC_PATH)&#xA;vpath %.inc  $(SRC_PATH)&#xA;vpath %.m    $(SRC_PATH)&#xA;vpath %.S    $(SRC_PATH)&#xA;vpath %.asm  $(SRC_PATH)&#xA;vpath %.rc   $(SRC_PATH)&#xA;vpath %.v    $(SRC_PATH)&#xA;vpath %.texi $(SRC_PATH)&#xA;vpath %.cu   $(SRC_PATH)&#xA;vpath %.ptx  $(SRC_PATH)&#xA;vpath %/fate_config.sh.template $(SRC_PATH)&#xA;&#xA;TESTTOOLS   = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch&#xA;HOSTPROGS  := $(TESTTOOLS:%=tests/%) doc/print_options&#xA;&#xA;# $(FFLIBS-yes) needs to be in linking order&#xA;FFLIBS-$(CONFIG_AVDEVICE)   &#x2B;= avdevice&#xA;FFLIBS-$(CONFIG_AVFILTER)   &#x2B;= avfilter&#xA;FFLIBS-$(CONFIG_AVFORMAT)   &#x2B;= avformat&#xA;FFLIBS-$(CONFIG_AVCODEC)    &#x2B;= avcodec&#xA;FFLIBS-$(CONFIG_AVRESAMPLE) &#x2B;= avresample&#xA;FFLIBS-$(CONFIG_POSTPROC)   &#x2B;= postproc&#xA;FFLIBS-$(CONFIG_SWRESAMPLE) &#x2B;= swresample&#xA;FFLIBS-$(CONFIG_SWSCALE)    &#x2B;= swscale&#xA;&#xA;FFLIBS := avutil&#xA;&#xA;DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd&#xA;&#xA;SKIPHEADERS = compat/w32pthreads.h&#xA;&#xA;# first so "all" becomes default target&#xA;all: all-yes&#xA;&#xA;include $(SRC_PATH)/tools/Makefile&#xA;include $(SRC_PATH)/ffbuild/common.mak&#xA;&#xA;FF_EXTRALIBS := $(FFEXTRALIBS)&#xA;FF_DEP_LIBS  := $(DEP_LIBS)&#xA;FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS)&#xA;&#xA;$(TOOLS): %$(EXESUF): %.o&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(EXTRALIBS-$(*F)) $(EXTRALIBS) $(ELIBS)&#xA;&#xA;target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;tools/target_bsf_%_fuzzer$(EXESUF): tools/target_bsf_%_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;target_dem_%_fuzzer$(EXESUF): target_dem_%_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;tools/target_io_dem_fuzzer$(EXESUF): tools/target_io_dem_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;&#xA;tools/enum_options$(EXESUF): ELIBS = $(FF_EXTRALIBS)&#xA;tools/enum_options$(EXESUF): $(FF_DEP_LIBS)&#xA;tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS)&#xA;tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)&#xA;tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS)&#xA;tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)&#xA;tools/target_dem_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)&#xA;&#xA;CONFIGURABLE_COMPONENTS =                                           \&#xA;    $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))                 \&#xA;    $(SRC_PATH)/libavcodec/bitstream_filters.c                      \&#xA;    $(SRC_PATH)/libavcodec/parsers.c                                \&#xA;    $(SRC_PATH)/libavformat/protocols.c                             \&#xA;&#xA;config.h: ffbuild/.config&#xA;ffbuild/.config: $(CONFIGURABLE_COMPONENTS)&#xA;    @-tput bold 2>/dev/null&#xA;    @-printf &#x27;\nWARNING: $(?) newer than config.h, rerun configure\n\n&#x27;&#xA;    @-tput sgr0 2>/dev/null&#xA;&#xA;SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS               \&#xA;               HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS            \&#xA;               ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS     \&#xA;               ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS                \&#xA;               MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS         \&#xA;               MMI-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS&#xA;&#xA;define RESET&#xA;$(1) :=&#xA;$(1)-yes :=&#xA;endef&#xA;&#xA;define DOSUBDIR&#xA;$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))&#xA;SUBDIR := $(1)/&#xA;include $(SRC_PATH)/$(1)/Makefile&#xA;-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile&#xA;-include $(SRC_PATH)/$(1)/$(INTRINSICS)/Makefile&#xA;include $(SRC_PATH)/ffbuild/library.mak&#xA;endef&#xA;&#xA;$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))&#xA;&#xA;include $(SRC_PATH)/fftools/Makefile&#xA;include $(SRC_PATH)/doc/Makefile&#xA;include $(SRC_PATH)/doc/examples/Makefile&#xA;&#xA;libavcodec/utils.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h&#xA;&#xA;$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF)&#xA;ifeq ($(STRIPTYPE),direct)&#xA;    $(STRIP) -o $@ $&lt;&#xA;else&#xA;    $(CP) $&lt; $@&#xA;    $(STRIP) $@&#xA;endif&#xA;&#xA;%$(PROGSSUF)_g$(EXESUF): $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)&#xA;&#xA;VERSION_SH  = $(SRC_PATH)/ffbuild/version.sh&#xA;GIT_LOG     = $(SRC_PATH)/.git/logs/HEAD&#xA;&#xA;.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak&#xA;.version: M=@&#xA;&#xA;libavutil/ffversion.h .version:&#xA;    $(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)&#xA;    $(Q)touch .version&#xA;&#xA;# force version.sh to run whenever version might have changed&#xA;-include .version&#xA;&#xA;install: install-libs install-headers&#xA;&#xA;install-libs: install-libs-yes&#xA;&#xA;install-data: $(DATA_FILES)&#xA;    $(Q)mkdir -p "$(DATADIR)"&#xA;    $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"&#xA;&#xA;uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig&#xA;&#xA;uninstall-data:&#xA;    $(RM) -r "$(DATADIR)"&#xA;&#xA;clean::&#xA;    $(RM) $(CLEANSUFFIXES)&#xA;    $(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) $(addprefix compat/*/*/,$(CLEANSUFFIXES))&#xA;    $(RM) -r coverage-html&#xA;    $(RM) -rf coverage.info coverage.info.in lcov&#xA;&#xA;distclean:: clean&#xA;    $(RM) .version avversion.h config.asm config.h mapfile  \&#xA;        ffbuild/.config ffbuild/config.* libavutil/avconfig.h \&#xA;        version.h libavutil/ffversion.h libavcodec/codec_names.h \&#xA;        libavcodec/bsf_list.c libavformat/protocol_list.c \&#xA;        libavcodec/codec_list.c libavcodec/parser_list.c \&#xA;        libavfilter/filter_list.c libavdevice/indev_list.c libavdevice/outdev_list.c \&#xA;        libavformat/muxer_list.c libavformat/demuxer_list.c&#xA;ifeq ($(SRC_LINK),src)&#xA;    $(RM) src&#xA;endif&#xA;    $(RM) -rf doc/examples/pc-uninstalled&#xA;&#xA;config:&#xA;    $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)&#xA;&#xA;build: all alltools examples testprogs&#xA;check: all alltools examples testprogs fate&#xA;&#xA;include $(SRC_PATH)/tests/Makefile&#xA;&#xA;$(sort $(OUTDIRS)):&#xA;    $(Q)mkdir -p $@&#xA;&#xA;# Dummy rule to stop make trying to rebuild removed or renamed headers&#xA;%.h:&#xA;    @:&#xA;&#xA;# Disable suffix rules.  Most of the builtin rules are suffix rules,&#xA;# so this saves some time on slow systems.&#xA;.SUFFIXES:&#xA;&#xA;.PHONY: all all-yes alltools build check config testprogs&#xA;.PHONY: *clean install* uninstall*&#xA;

    &#xA;

    Any suggestions ?
    &#xA;Thanks !

    &#xA;

    EDIT
    &#xA;Tried starting with x64 Native Tools Command Prompt for VS 2019 and got the same result.

    &#xA;

    EDIT #2 (because this is too long for a comment)

    &#xA;

    $ mingw32-make Q=&#xA;mkdir -p libavutil/&#xA;mkdir -p libswscale/&#xA;mkdir -p libswresample/&#xA;mkdir -p libavcodec/&#xA;mkdir -p libavformat/&#xA;mkdir -p libavfilter/&#xA;mkdir -p libavdevice/&#xA;awk: cmd. line:1: /including/ { sub(/^.*file: */, ""); gsub(/\/, "/"); if (!match($0, / /)) print "libavdevice/alldevices.o:", $0 }&#xA;awk: cmd. line:1:                                                                                                        ^ syntax error&#xA;awk: cmd. line:1: /including/ { sub(/^.*file: */, ""); gsub(/\/, "/"); if (!match($0, / /)) print "libavdevice/alldevices.o:", $0 }&#xA;awk: cmd. line:1:                                                                                                           ^ unterminated string&#xA;ffbuild/common.mak:67: recipe for target &#x27;libavdevice/alldevices.o&#x27; failed&#xA;mingw32-make: *** [libavdevice/alldevices.o] Error 1&#xA;

    &#xA;

    ffbuild/common.mak is :

    &#xA;

    #&#xA;# common bits used by all libraries&#xA;#&#xA;&#xA;DEFAULT_X86ASMD=.dbg&#xA;&#xA;ifeq ($(DBG),1)&#xA;X86ASMD=$(DEFAULT_X86ASMD)&#xA;else&#xA;X86ASMD=&#xA;endif&#xA;&#xA;ifndef SUBDIR&#xA;&#xA;ifndef V&#xA;Q      = @&#xA;ECHO   = printf "$(1)\t%s\n" $(2)&#xA;BRIEF  = CC CXX OBJCC HOSTCC HOSTLD AS X86ASM AR LD STRIP CP WINDRES NVCC&#xA;SILENT = DEPCC DEPHOSTCC DEPAS DEPX86ASM RANLIB RM&#xA;&#xA;MSG    = $@&#xA;M      = @$(call ECHO,$(TAG),$@);&#xA;$(foreach VAR,$(BRIEF), \&#xA;    $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))&#xA;$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))&#xA;$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))&#xA;endif&#xA;&#xA;ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample&#xA;&#xA;# NASM requires -I path terminated with /&#xA;IFLAGS     := -I. -I$(SRC_LINK)/&#xA;CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)&#xA;CFLAGS     &#x2B;= $(ECFLAGS)&#xA;CCFLAGS     = $(CPPFLAGS) $(CFLAGS)&#xA;OBJCFLAGS  &#x2B;= $(EOBJCFLAGS)&#xA;OBJCCFLAGS  = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)&#xA;ASFLAGS    := $(CPPFLAGS) $(ASFLAGS)&#xA;CXXFLAGS   := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS)&#xA;X86ASMFLAGS &#x2B;= $(IFLAGS:%=%/) -I$( -Pconfig.asm&#xA;&#xA;HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)&#xA;LDFLAGS    := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)&#xA;&#xA;define COMPILE&#xA;       $(call $(1)DEP,$(1))&#xA;       $($(1)) $($(1)FLAGS) $($(2)) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$&lt;)&#xA;endef&#xA;&#xA;COMPILE_C = $(call COMPILE,CC)&#xA;COMPILE_CXX = $(call COMPILE,CXX)&#xA;COMPILE_S = $(call COMPILE,AS)&#xA;COMPILE_M = $(call COMPILE,OBJCC)&#xA;COMPILE_X86ASM = $(call COMPILE,X86ASM)&#xA;COMPILE_HOSTC = $(call COMPILE,HOSTCC)&#xA;COMPILE_NVCC = $(call COMPILE,NVCC)&#xA;COMPILE_MMI = $(call COMPILE,CC,MMIFLAGS)&#xA;COMPILE_MSA = $(call COMPILE,CC,MSAFLAGS)&#xA;&#xA;%_mmi.o: %_mmi.c&#xA;    $(COMPILE_MMI)&#xA;&#xA;%_msa.o: %_msa.c&#xA;    $(COMPILE_MSA)&#xA;&#xA;%.o: %.c&#xA;    $(COMPILE_C)&#xA;&#xA;%.o: %.cpp&#xA;    $(COMPILE_CXX)&#xA;&#xA;%.o: %.m&#xA;    $(COMPILE_M)&#xA;&#xA;%.s: %.c&#xA;    $(CC) $(CCFLAGS) -S -o $@ $&lt;&#xA;&#xA;%.o: %.S&#xA;    $(COMPILE_S)&#xA;&#xA;%_host.o: %.c&#xA;    $(COMPILE_HOSTC)&#xA;&#xA;%$(DEFAULT_X86ASMD).asm: %.asm&#xA;    $(DEPX86ASM) $(X86ASMFLAGS) -M -o $@ $&lt; > $(@:.asm=.d)&#xA;    $(X86ASM) $(X86ASMFLAGS) -e $&lt; | sed &#x27;/^%/d;/^$$/d;&#x27; > $@&#xA;&#xA;%.o: %.asm&#xA;    $(COMPILE_X86ASM)&#xA;    -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)&#xA;&#xA;%.o: %.rc&#xA;    $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $&lt;&#xA;&#xA;%.i: %.c&#xA;    $(CC) $(CCFLAGS) $(CC_E) $&lt;&#xA;&#xA;%.h.c:&#xA;    $(Q)echo &#x27;#include "$*.h"&#x27; >$@&#xA;&#xA;%.ptx: %.cu $(SRC_PATH)/compat/cuda/cuda_runtime.h&#xA;    $(COMPILE_NVCC)&#xA;&#xA;%.ptx.c: %.ptx&#xA;    $(Q)sh $(SRC_PATH)/compat/cuda/ptx2c.sh $@ $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$&lt;)&#xA;&#xA;%.c %.h %.pc %.ver %.version: TAG = GEN&#xA;&#xA;# Dummy rule to stop make trying to rebuild removed or renamed headers&#xA;%.h:&#xA;    @:&#xA;&#xA;# Disable suffix rules.  Most of the builtin rules are suffix rules,&#xA;# so this saves some time on slow systems.&#xA;.SUFFIXES:&#xA;&#xA;# Do not delete intermediate files from chains of implicit rules&#xA;$(OBJS):&#xA;endif&#xA;&#xA;include $(SRC_PATH)/ffbuild/arch.mak&#xA;&#xA;OBJS      &#x2B;= $(OBJS-yes)&#xA;SLIBOBJS  &#x2B;= $(SLIBOBJS-yes)&#xA;FFLIBS    := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS)&#xA;TESTPROGS &#x2B;= $(TESTPROGS-yes)&#xA;&#xA;LDLIBS       = $(FFLIBS:%=%$(BUILDSUF))&#xA;FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(foreach lib,EXTRALIBS-$(NAME) $(FFLIBS:%=EXTRALIBS-%),$($(lib))) $(EXTRALIBS)&#xA;&#xA;OBJS      := $(sort $(OBJS:%=$(SUBDIR)%))&#xA;SLIBOBJS  := $(sort $(SLIBOBJS:%=$(SUBDIR)%))&#xA;TESTOBJS  := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o)&#xA;TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF))&#xA;HOSTOBJS  := $(HOSTPROGS:%=$(SUBDIR)%.o)&#xA;HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))&#xA;TOOLS     &#x2B;= $(TOOLS-yes)&#xA;TOOLOBJS  := $(TOOLS:%=tools/%.o)&#xA;TOOLS     := $(TOOLS:%=tools/%$(EXESUF))&#xA;HEADERS   &#x2B;= $(HEADERS-yes)&#xA;&#xA;PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))&#xA;DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))&#xA;STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))&#xA;&#xA;SRC_DIR    := $(SRC_PATH)/lib$(NAME)&#xA;ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))&#xA;SKIPHEADERS &#x2B;= $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)&#xA;SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)&#xA;HOBJS        = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o))&#xA;PTXOBJS      = $(filter %.ptx.o,$(OBJS))&#xA;$(HOBJS):     CCFLAGS &#x2B;= $(CFLAGS_HEADERS)&#xA;checkheaders: $(HOBJS)&#xA;.SECONDARY:   $(HOBJS:.o=.c) $(PTXOBJS:.o=.c) $(PTXOBJS:.o=)&#xA;&#xA;alltools: $(TOOLS)&#xA;&#xA;$(HOSTOBJS): %.o: %.c&#xA;    $(COMPILE_HOSTC)&#xA;&#xA;$(HOSTPROGS): %$(HOSTEXESUF): %.o&#xA;    $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS)&#xA;&#xA;$(OBJS):     | $(sort $(dir $(OBJS)))&#xA;$(HOBJS):    | $(sort $(dir $(HOBJS)))&#xA;$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))&#xA;$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))&#xA;$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))&#xA;$(TOOLOBJS): | tools&#xA;&#xA;OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))&#xA;&#xA;CLEANSUFFIXES     = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb&#xA;LIBSUFFIXES       = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a&#xA;&#xA;define RULES&#xA;clean::&#xA;    $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS)&#xA;endef&#xA;&#xA;$(eval $(RULES))&#xA;&#xA;-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_X86ASMD).d)&#xA;

    &#xA;

  • Receive RTMP stream with OpenCV (python)

    12 février 2024, par Overnout

    I'm trying to process an RTMP stream in Python, using OpenCV2 but I'm not able to get OpenCV to capture it.

    &#xA;

    I can run FFmpeg/FFplay from the command line and receive the stream successfully.&#xA;What could cause OpenCV to fail opening the stream in listening mode ?

    &#xA;

    Here is my code :

    &#xA;

    import cv2&#xA;&#xA;cap = cv2.VideoCapture("rtmp://0.0.0.0/live/stream", cv2.CAP_FFMPEG)&#xA;&#xA;if not cap.isOpened():&#xA;    print("Cannot open video source")&#xA;    exit()&#xA;

    &#xA;

    And the output :

    &#xA;

    [tcp @ 00000192c490d640] Connection to tcp://0.0.0.0:1935 failed: Error number -138 occurred&#xA;[rtmp @ 00000192c490d580] Cannot open connection tcp://0.0.0.0:1935 Cannot open video source&#xA;

    &#xA;

    Here is the output of cv2.getBuildInformation()

    &#xA;

    General configuration for OpenCV 4.9.0 =====================================&#xA;  Version control:               4.9.0&#xA;&#xA;  Platform:&#xA;    Timestamp:                   2023-12-31T11:21:12Z&#xA;    Host:                        Windows 10.0.17763 AMD64&#xA;    CMake:                       3.24.2&#xA;    CMake generator:             Visual Studio 14 2015&#xA;    CMake build tool:            MSBuild.exe&#xA;    MSVC:                        1900&#xA;    Configuration:               Debug Release&#xA;&#xA;  CPU/HW features:&#xA;    Baseline:                    SSE SSE2 SSE3&#xA;      requested:                 SSE3&#xA;    Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2&#xA;      requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX&#xA;      SSE4_1 (16 files):         &#x2B; SSSE3 SSE4_1&#xA;      SSE4_2 (1 files):          &#x2B; SSSE3 SSE4_1 POPCNT SSE4_2&#xA;      FP16 (0 files):            &#x2B; SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX&#xA;      AVX (8 files):             &#x2B; SSSE3 SSE4_1 POPCNT SSE4_2 AVX&#xA;      AVX2 (36 files):           &#x2B; SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2&#xA;&#xA;  C/C&#x2B;&#x2B;:&#xA;    Built as dynamic libs?:      NO&#xA;    C&#x2B;&#x2B; standard:                11&#xA;    C&#x2B;&#x2B; Compiler:                C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe  (ver 19.0.24247.2)&#xA;    C&#x2B;&#x2B; flags (Release):         /DWIN32 /D_WINDOWS /W4 /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /MP  /O2 /Ob2 /DNDEBUG &#xA;    C&#x2B;&#x2B; flags (Debug):           /DWIN32 /D_WINDOWS /W4 /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /MP  /Zi /Ob0 /Od /RTC1 &#xA;    C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe&#xA;    C flags (Release):           /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /MP   /O2 /Ob2 /DNDEBUG &#xA;    C flags (Debug):             /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /MP /Zi /Ob0 /Od /RTC1 &#xA;    Linker flags (Release):      /machine:x64  /NODEFAULTLIB:atlthunk.lib /INCREMENTAL:NO  /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcpmtd.lib /NODEFAULTLIB:msvcrtd.lib&#xA;    Linker flags (Debug):        /machine:x64  /NODEFAULTLIB:atlthunk.lib /debug /INCREMENTAL  /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:msvcrt.lib&#xA;    ccache:                      NO&#xA;    Precompiled headers:         YES&#xA;    Extra dependencies:          wsock32 comctl32 gdi32 ole32 setupapi ws2_32&#xA;    3rdparty dependencies:       libprotobuf ade ittnotify libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf zlib ippiw ippicv&#xA;&#xA;  OpenCV modules:&#xA;    To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio&#xA;    Disabled:                    java world&#xA;    Disabled by dependency:      -&#xA;    Unavailable:                 python2 ts&#xA;    Applications:                -&#xA;    Documentation:               NO&#xA;    Non-free algorithms:         NO&#xA;&#xA;  Windows RT support:            NO&#xA;&#xA;  GUI:                           WIN32UI&#xA;    Win32 UI:                    YES&#xA;    VTK support:                 NO&#xA;&#xA;  Media I/O: &#xA;    ZLib:                        build (ver 1.3)&#xA;    JPEG:                        build-libjpeg-turbo (ver 2.1.3-62)&#xA;      SIMD Support Request:      YES&#xA;      SIMD Support:              NO&#xA;    WEBP:                        build (ver encoder: 0x020f)&#xA;    PNG:                         build (ver 1.6.37)&#xA;    TIFF:                        build (ver 42 - 4.2.0)&#xA;    JPEG 2000:                   build (ver 2.5.0)&#xA;    OpenEXR:                     build (ver 2.3.0)&#xA;    HDR:                         YES&#xA;    SUNRASTER:                   YES&#xA;    PXM:                         YES&#xA;    PFM:                         YES&#xA;&#xA;  Video I/O:&#xA;    DC1394:                      NO&#xA;    FFMPEG:                      YES (prebuilt binaries)&#xA;      avcodec:                   YES (58.134.100)&#xA;      avformat:                  YES (58.76.100)&#xA;      avutil:                    YES (56.70.100)&#xA;      swscale:                   YES (5.9.100)&#xA;      avresample:                YES (4.0.0)&#xA;    GStreamer:                   NO&#xA;    DirectShow:                  YES&#xA;    Media Foundation:            YES&#xA;      DXVA:                      YES&#xA;&#xA;  Parallel framework:            Concurrency&#xA;&#xA;  Trace:                         YES (with Intel ITT)&#xA;&#xA;  Other third-party libraries:&#xA;    Intel IPP:                   2021.11.0 [2021.11.0]&#xA;           at:                   D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-build/3rdparty/ippicv/ippicv_win/icv&#xA;    Intel IPP IW:                sources (2021.11.0)&#xA;              at:                D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-build/3rdparty/ippicv/ippicv_win/iw&#xA;    Lapack:                      NO&#xA;    Eigen:                       NO&#xA;    Custom HAL:                  NO&#xA;    Protobuf:                    build (3.19.1)&#xA;    Flatbuffers:                 builtin/3rdparty (23.5.9)&#xA;&#xA;  OpenCL:                        YES (NVD3D11)&#xA;    Include path:                D:/a/opencv-python/opencv-python/opencv/3rdparty/include/opencl/1.2&#xA;    Link libraries:              Dynamic load&#xA;&#xA;  Python 3:&#xA;    Interpreter:                 C:/hostedtoolcache/windows/Python/3.7.9/x64/python.exe (ver 3.7.9)&#xA;    Libraries:                   C:/hostedtoolcache/windows/Python/3.7.9/x64/libs/python37.lib (ver 3.7.9)&#xA;    numpy:                       C:/hostedtoolcache/windows/Python/3.7.9/x64/lib/site-packages/numpy/core/include (ver 1.17.0)&#xA;    install path:                python/cv2/python-3&#xA;&#xA;  Python (for build):            C:\hostedtoolcache\windows\Python\3.7.9\x64\python.exe&#xA;&#xA;  Java:                          &#xA;    ant:                         NO&#xA;    Java:                        YES (ver 1.8.0.392)&#xA;    JNI:                         C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include/win32 C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include&#xA;    Java wrappers:               NO&#xA;    Java tests:                  NO&#xA;&#xA;  Install to:                    D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-install&#xA;-----------------------------------------------------------------&#xA;

    &#xA;