Recherche avancée

Médias (91)

Autres articles (78)

  • (Dés)Activation de fonctionnalités (plugins)

    18 février 2011, par

    Pour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
    SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
    Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
    MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)

  • Soumettre bugs et patchs

    10 avril 2011

    Un logiciel n’est malheureusement jamais parfait...
    Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
    Si vous pensez avoir résolu vous même le bug (...)

  • Installation en mode standalone

    4 février 2011, par

    L’installation de la distribution MediaSPIP se fait en plusieurs étapes : la récupération des fichiers nécessaires. À ce moment là deux méthodes sont possibles : en installant l’archive ZIP contenant l’ensemble de la distribution ; via SVN en récupérant les sources de chaque modules séparément ; la préconfiguration ; l’installation définitive ;
    [mediaspip_zip]Installation de l’archive ZIP de MediaSPIP
    Ce mode d’installation est la méthode la plus simple afin d’installer l’ensemble de la distribution (...)

Sur d’autres sites (10056)

  • OpenCV 3.4.3 - GStream not called when VideoWriting

    14 décembre 2018, par taubhi

    I’d like to succeed writing a file with OpenCV encoding with GStreamer.

    Thus I’m using the code :

    VideoWriter.open("appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=test2.mkv sync=false",
    //cv::CAP_GSTREAMER, //set or not, I get the same problem
    0, (double)25, //fourcc, fps
    cv::Size(1024, 1024),
    true);

    And my problem :

    A video file called appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=test2.mkv sync=false is created (rather than test2.mkv), and it is empty. The same problem is corrected and seems to work in the following thread, without any effect for me : Opening a GStreamer pipeline from OpenCV with VideoWriter

    I tried, without success :

    • Add quotes to the file name test2 :
      "appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=\"test2.mkv\" sync=false" neither
    • Encode with different format : .flv rather than .mkv
    • Encode with different codec : omxh265enc rather than omxh264en

    I checked :

    • That GStreamer is well compiled with OpenCV ; the CMake of the OpenCV project outputs :

      Video I/O:Video for Windows : YES
      DC1394 : NO
      FFMPEG : YES (prebuilt binaries)
      avcodec : YES (ver 57.107.100)
      avformat : YES (ver 57.83.100)
      avutil : YES (ver 55.78.100)
      swscale : YES (ver 4.8.100)
      avresample : YES (ver 3.7.0)
      GStreamer :

      base : YES (ver 1.0)

      video : YES (ver 1.0)

      app : YES (ver 1.0)

      riff : YES (ver 1.0)

      pbutils : YES (ver 1.0)

      DirectShow : YES

      Media Foundation : YES

    • That FFMpeg is installed on my computer ; for this I used VLC :

      File -> Stream -> Add a file then stream
      New destination : RTP/MPEG Transport Stream
      Profile : Video - H.264 + MP3 (MP4)
      Then no error happens ; Note : an error occured with Video - H.265 + MP3
      (MP4), but I’m using omxh264enc in my code, not 265

    I’m struggled :/ Do you have any idea ?
    Thanks a lot :)

    Have a good day,

    Thibaut

    PS - Complete OpenCV CMake output :

    Selecting Windows SDK version 10.0.17134.0 to target Windows 10.0.17763.
    AVX_512F is not supported by C++ compiler

    AVX512_SKX is not supported by C++ compiler

    Dispatch optimization AVX512_SKX is not available, skipped

    libjpeg-turbo: VERSION = 1.5.3, BUILD = opencv-3.4.3-libjpeg-turbo

    Looking for Mfapi.h

    Looking for Mfapi.h - found

    found Intel IPP (ICV version): 2017.0.3 [2017.0.3]

    at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippicv_win

    found Intel IPP IW sources: 2017.0.3

    at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippiw_win

    CUDA detected: 9.2

    CUDA NVCC target flags: -gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_52,code=sm_52;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-D_FORCE_INLINES

    Found apache ant: C:/NVPACK/apache-ant-1.8.2/bin/ant.bat (1.8.2)

    Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)

    VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file

    Caffe: NO

    Protobuf: NO

    Glog: YES

    freetype2: NO

    harfbuzz: NO

    Module opencv_ovis disabled because OGRE3D was not found

    No preference for use of exported gflags CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported gflags CMake configuration if available.

    Found installed version of gflags: E:/Git/gflags/BUILD-VS2015

    Detected gflags version: 2.2.1

    Checking SFM deps... FALSE

    Module opencv_sfm disabled because the following dependencies are not found: Eigen Glog/Gflags

    Excluding from source files list: <build>/modules/dnn/layers/layers_common.avx512_skx.cpp

    Tesseract: NO


    General configuration for OpenCV 3.4.3 =====================================

    Version control: unknown


    Extra modules:

    Location (extra): E:/OpenCV/3.4.3/opencv_contrib-3.4.3/modules

    Version control (extra): unknown


    Platform:

    Timestamp: 2018-11-07T16:57:18Z

    Host: Windows 10.0.17763 AMD64

    CMake: 3.12.0-rc2

    CMake generator: Visual Studio 14 2015 Win64

    CMake build tool: C:/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe

    MSVC: 1900


    CPU/HW features:

    Baseline: SSE SSE2 SSE3

    requested: SSE3

    Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2

    requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX

    SSE4_1 (5 files): + SSSE3 SSE4_1

    SSE4_2 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2

    FP16 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX

    AVX (6 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX

    AVX2 (11 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2


    C/C++:

    Built as dynamic libs?: YES

    C++11: YES

    C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe (ver 19.0.24215.1)

    C++ 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 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP16 /MD /O2 /Ob2 /DNDEBUG

    C++ 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 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP16 /MDd /Zi /Ob0 /Od /RTC1

    C Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe

    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 /MP16 /MD /O2 /Ob2 /DNDEBUG

    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 /MP16 /MDd /Zi /Ob0 /Od /RTC1

    Linker flags (Release): /machine:x64 /INCREMENTAL:NO

    Linker flags (Debug): /machine:x64 /debug /INCREMENTAL

    ccache: NO

    Precompiled headers: YES

    Extra dependencies: cudart.lib nppc.lib nppial.lib nppicc.lib nppicom.lib nppidei.lib nppif.lib nppig.lib nppim.lib nppist.lib nppisu.lib nppitc.lib npps.lib cublas.lib cufft.lib -LIBPATH:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2/lib/x64

    3rdparty dependencies:


    OpenCV modules:

    To be built: aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev datasets dnn dnn_objdetect dpm face features2d flann fuzzy hfs highgui img_hash imgcodecs imgproc java java_bindings_generator line_descriptor ml objdetect optflow phase_unwrapping photo plot python_bindings_generator reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto

    Disabled: js world

    Disabled by dependency: -

    Unavailable: cnn_3dobj cvv freetype hdf matlab ovis python2 python3 sfm viz

    Applications: tests perf_tests apps

    Documentation: NO

    Non-free algorithms: NO


    Windows RT support: NO


    GUI:

    Win32 UI: YES

    VTK support: NO


    Media I/O:

    ZLib: build (ver 1.2.11)

    JPEG: build-libjpeg-turbo (ver 1.5.3-62)

    WEBP: build (ver encoder: 0x020e)

    PNG: build (ver 1.6.34)

    TIFF: build (ver 42 - 4.0.9)

    JPEG 2000: build (ver 1.900.1)

    OpenEXR: build (ver 1.7.1)

    HDR: YES

    SUNRASTER: YES

    PXM: YES


    Video I/O:

    Video for Windows: YES

    DC1394: NO

    FFMPEG: YES (prebuilt binaries)

    avcodec: YES (ver 57.107.100)

    avformat: YES (ver 57.83.100)

    avutil: YES (ver 55.78.100)

    swscale: YES (ver 4.8.100)

    avresample: YES (ver 3.7.0)

    GStreamer:

    base: YES (ver 1.0)

    video: YES (ver 1.0)

    app: YES (ver 1.0)

    riff: YES (ver 1.0)

    pbutils: YES (ver 1.0)

    DirectShow: YES

    Media Foundation: YES


    Parallel framework: Concurrency


    Trace: YES (with Intel ITT)


    Other third-party libraries:

    Intel IPP: 2017.0.3 [2017.0.3]

    at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippicv_win

    Intel IPP IW: sources (2017.0.3)

    at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippiw_win

    Custom HAL: NO

    Protobuf: build (3.5.1)


    NVIDIA CUDA: YES (ver 9.2, CUFFT CUBLAS NVCUVID)

    NVIDIA GPU arch: 30 35 37 50 52 60 61 70

    NVIDIA PTX archs:


    OpenCL: YES (no extra features)

    Include path: E:/OpenCV/3.4.3/opencv-3.4.3/3rdparty/include/opencl/1.2

    Link libraries: Dynamic load


    Python (for build): C:/ProgramData/Miniconda3/python.exe


    Java:

    ant: C:/NVPACK/apache-ant-1.8.2/bin/ant.bat (ver 1.8.2)

    JNI: C:/NVPACK/jdk1.8.0_77/include C:/NVPACK/jdk1.8.0_77/include/win32 C:/NVPACK/jdk1.8.0_77/include

    Java wrappers: YES

    Java tests: YES


    Matlab: NO


    Install to: E:/OpenCV/3.4.3/build/install

    -----------------------------------------------------------------


    Configuring done
    </build>
  • ffprobe can not read a file generated by node JS createWriteStream() on AWS

    30 septembre 2016, par matthiasdv

    I have a setup running on AWS that triggers an AWS Lambda function when a video file is uploaded to an S3 bucket. The Lambda function is written in node and downloads the file, streams it to a temp working file and then executes ffprobe on it followed by an ffmpeg command.

    ffprobe throws the following error :

    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4ea8e20] error reading header download: Invalid data found when processing input

    The bug is hard to reproduce and occurs only half the time, which I believe to be because of the async nature of the program.

    My main function is as follows

    downloadFile(library.getDownloadStream, logger, sourceLocation, localFilePath)
           .then(() => ffprobe(logger))
           .then(() => ffmpeg(logger, keyPrefix))
           .then(() => removeDownload(logger, localFilePath))
           .then(() => uploadFiles(library.uploadToBucket, logger, keyPrefix))
           .then(data => invocation.callback())
           .catch(error => invocation.callback(error));

    The ffprobe Function :

    function downloadFile(downloadFunc, logger, sourceLocation, download) {
       return new Promise((resolve, reject) => {
           logger.log(`Starting download: ${sourceLocation.bucket} / ${sourceLocation.key}`);

           var downloadFile = createWriteStream(download);

           downloadFunc(sourceLocation.bucket, sourceLocation.key)
               .on('end', () => {
                   logger.log("closing writing stream");
                   downloadFile.end();

                   logger.log('Download finished');

                   resolve();
               })
               .on('error', reject)
               .pipe(downloadFile);
       });
    }

    Each build/update uploads the latest ffmpeg version to AWS. I can not reproduce this error locally.

    Why is ffprobe throwing this error regarding the header ?

    Update

    Logging the downloaded file’s filesize prints exactly the same amount of bytes, regardless of wether ffprobe is successful or not.

    However, when I set a timeOut before resolving the promise, the bug no longer occurs and ffprobe runs successfully each time :

    downloadFunc(sourceLocation.bucket, sourceLocation.key)
           .on('end', () => {

               logger.log('Download finished');

               // Filesize
               var meta = fs.statSync(download);
               var fileSizeInBytes = meta["size"];

               logger.log(fileSizeInBytes);

               // resolve();
               setTimeout(resolve, 1000);
           })
           .on('error', reject)
           .pipe(downloadFile);

    Why is this happening ?

  • Hung out to dry

    31 mai 2013, par Mans — Law and liberty

    Outrage was the general reaction when Google recently announced their dropping of XMPP server-to-server federation from Hangouts, as the search giant’s revamped instant messaging platform is henceforth to be known. This outrage is, however, largely unjustified ; Google’s decision is merely a rational response to issues of a more fundamental nature. To see why, we need to step back and look at the broader instant messaging landscape.

    A brief history of IM

    The term instant messaging (IM) gained popularity in the mid-1990s along with the rise of chat clients such as ICQ, AOL Instant Messenger, and later MSN Messenger. These all had one thing in common : they were closed systems. Although global in the sense of allowing access from anywhere on the Internet, communication was possible only within each network, and only using the officially sanctioned client software. Contrast this with email, where users are free to choose any service provider as well as client software, inter-server communication over open protocols delivering messages to their proper destinations.

    The email picture has, however, not always been so rosy. During the 1970s and 80s a multitude of incompatible email systems (e.g. UUCP and X.400) were in more or less widespread use on various networks. As these networks gave way to the ARPANET/Internet, so did their mail systems to the SMTP email we all use today. A similar consolidation has yet to occur in the area of instant messaging.

    Over the years, a few efforts towards a cross-domain instant messaging have been undertaken. One early example is the Zephyr system created as part of Project Athena at MIT in the late 1980s. While it never saw significant uptake, it is still in use at a few universities. A more successful story is that of XMPP. Conceived under the name Jabber in the late 1990s, XMPP is an open standard specified in a set of IETF RFCs. In addition to being open, a distinguishing feature of XMPP compared to other contemporary IM systems is its decentralised nature, server-to-server connections allowing communication between users with accounts on different systems. Just like email.

    The social network

    A more recent emergence on the Internet is the social network. Although not the first of its kind, Facebook was the first to achieve its level of penetration, both geographically and across social groups. A range of messaging options, including email-style as well as instant messaging (chat), are available, all within the same web interface. What it does not allow is communication outside the Facebook network. Other social networks operate in the same spirit.

    The popularity of social networks, to the extent that they for many constitute the primary means of communication, has in a sense brought back fragmented networks of the 1980s. Even though they share infrastructure, up to and including the browser application, the social networks create walled-off regions of the Internet between which little or no exchange is possible.

    The house that Google built

    In 2005, Google launched Talk, an XMPP-based instant messaging service allowing users to connect using either Google’s official client application or any third-party XMPP client. Soon after, server-to-server federation was activated, enabling anyone with a Google account to exchange instant messages with users of any other federated XMPP service. An in-browser chat interface was also added to Gmail.

    It was arguably only with the 2011 introduction of Google+ that Google, despite its previous endeavours with Orkut and Buzz, had a viable contender in the social networking space. Since its inception, Google+ has gone through a number of changes where features have been added or reworked. Instant messaging within Google+ was until recently available only in mobile clients. On the desktop, the sole messaging option was Hangouts which, although featuring text chat, cannot be considered instant messaging in the usual sense.

    With a sprawling collection of messaging systems (Talk, Google+ Messenger, Hangouts), some action to consolidate them was a logical step. What we got was a unification under the Hangouts name. A redesigned Google+ now sports in-browser instant messaging similar the the Talk interface already present in Gmail. At the same time, the standalone desktop Talk client is discontinued, as is the Messenger feature in mobile Google+. All together, the changes make for a much less confusing user experience.

    The sky is falling down

    Along with the changes to the messaging platform, one announcement stoked anger on the Internet : Google’s intent to discontinue XMPP federation (as of this writing, it is still operational). Google, the (self-described) champions of openness on the Internet were seen to be closing their doors to the outside world. The effects of the change are, however, not quite so earth-shattering. Of the other major messaging networks to offer XMPP at all (Facebook, Skype, and the defunct Microsoft Messenger), none support federation ; a Google user has never been able to chat with a Facebook user.

    XMPP federation appears to be in use mainly by non-profit organisations or individuals running their own servers. The number of users on these systems is hard to assess, though it seems fair to assume it is dwarfed by the hundreds of millions using Google or Facebook. As such, the overall impact of cutting off communication with the federated servers is relatively minor, albeit annoying for those affected.

    A fragmented world

    Rather than chastising Google for making a low-impact, presumably founded, business decision, we should be asking ourselves why instant messaging is still so fragmented in the first place, whereas email is not. The answer can be found by examining the nature of entities providing these services.

    Ever since the commercialisation of the Internet started in the 1990s, email has been largely seen as being part of the Internet. Access to email was a major selling point for Internet service providers ; indeed, many still use the email facilities of their ISP. Instant messaging, by contrast, has never come as part of the basic offering, rather being a third-party service running on top of the Internet.

    Users wishing to engage in instant messaging have always had to seek out and sign up with a provider of such a service. As the IM networks were isolated, most would choose whichever service their friends were already using, and a small number of networks, each with a sustainable number of users, came to dominate. In the early days, dedicated IM services such as ICQ were popular. Today, social networks have taken their place with Facebook currently in the dominant position. With the new Hangouts, Google offers its users the service they want in the way they have come to expect.

    Follow the money

    We now have all the pieces necessary to see why inter-domain instant messaging has never taken off, and the answer is simple : the major players have no commercial incentive to open access to their IM networks. In fact, they have good reason to keep the networks closed. Ensuring that a person leaving the network loses contact with his or her friends, increases user retention by raising the cost of switching to another service. Monetising users is also better facilitated if they are forced to remain on, say, Facebook’s web pages while using its services rather than accessing them indirectly, perhaps even through a competing (Google, say) frontend. The users do not generally care much, since all their friends are already on the same network as themselves.

    While Google Talk was a standalone service, only loosely coupled to other Google products, these aspects were of lesser importance. After all, Google still had access to all the messages passing through the system and could analyse them for advert targeting purposes. Now that messaging is an integrated part of Google+, and thus serves as a direct competitor to the likes of Facebook, the situation has changed. All the reasons for Facebook not to open its network now apply equally to Google as well.