Recherche avancée

Médias (91)

Autres articles (47)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • 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 (...)

Sur d’autres sites (6688)

  • FFMPEG Merge Multiple Videos : No Audio Source for one of them

    28 mars 2020, par Coach Roebuck

    I’ve written a node.js script to merge multiple video files into a single file. I’ve encountered a scenario in which no audio is provided for one of the input video files.

    I first executed ffprobe so that I can access what I’ll refer to as the "video file spec". In this scenario, I created a basic module to help me better understand my problem :

    Evaluation from all processes: [
     {
       fileName: 'input-0.mp4',
       isVideoAvailable: true,
       isAudioAvailable: false,
       width: 1920,
       height: 1080,
       sampleRateAspectRatio: '1/1',
       audioVolume: 1,
       duration: '13.140000'
     },
     {
       fileName: 'input-1.mp4',
       isVideoAvailable: true,
       isAudioAvailable: true,
       width: 1920,
       height: 1080,
       sampleRateAspectRatio: '1/1',
       audioVolume: 1,
       duration: '17.160000'
     },
     {
       fileName: 'input-2.mp4',
       isVideoAvailable: true,
       isAudioAvailable: true,
       width: 1920,
       height: 1080,
       sampleRateAspectRatio: '1/1',
       audioVolume: 1,
       duration: '20.280000'
     },
     {
       fileName: 'input-3.mp4',
       isVideoAvailable: true,
       isAudioAvailable: true,
       width: 1920,
       height: 1080,
       sampleRateAspectRatio: '1/1',
       audioVolume: 1,
       duration: '19.020000'
     },
     {
       fileName: 'input-4.mp4',
       isVideoAvailable: true,
       isAudioAvailable: true,
       width: 1920,
       height: 1080,
       sampleRateAspectRatio: '1/1',
       audioVolume: 1,
       duration: '9.480000'
     }
    ]

    This next block of code are the parameters that I’ve actually hard-coded in this case. The screen resolution and aspect ratio are manually set, as I discovered differing settings with each video I have been processing. These parameters allow FFMPEG to execute successfully under normal circumstances :

    let ffmpegParameters = [
     '-i',
     'input-0.mp4',
     '-i',
     'input-1.mp4',
     '-i',
     'input-2.mp4',
     '-i',
     'input-3.mp4',
     '-i',
     'input-4.mp4',
     '-f',
     'lavfi',
     '-t',
     '0.1',
     '-i',
     'anullsrc',
     '-filter_complex',
     '[0:v]scale=1920:1080,setsar=1/1[v0];[0:a]volume=1.0[a0];[1:v]scale=1920:1080,setsar=1/1[v1];[1:a]volume=1.0[a1];[2:v]scale=1920:1080,setsar=1/1[v2];[2:a]volume=1.0[a2];[3:v]scale=1920:1080,setsar=1/1[v3];[3:a]volume=1.0[a3];[4:v]scale=1920:1080,setsar=1/1[v4];[4:a]volume=1.0[a4];[v0][a0][v1][a1][v2][a2][v3][a3][v4][a4]concat=n=5:v=1:a=1[v][a]',
     '-map',
     '[v]',
     '-map',
     '[a]',
     '-c:v',
     'libx264',
     '-vsync',
     '2',
     'output.mp4'
    ]

    A comment from a different thread suggested to supply a dummy audio in cases such as mine. I’ve added that to no prevail :

     '-f',
     'lavfi',
     '-t',
     '0.1',
     '-i',
     'anullsrc',

    I do not know how to adjust the complex filter to account for my situation of the first video containing no audio. I’ve included the entire log below :

    Logs:
    ffmpeg version git-2020-02-03-1c15111
    Copyright (c) 2000-2020 the FFmpeg developers
     built with Apple clang version 11.0.0 (clang-1100.0.33.8)
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-appkit --enable-avfoundation --enable-coreimage --enable-audiotoolbox
     libavutil      56. 38.100 / 56. 38.100
     libavcodec     58. 67.100 / 58. 67.100
     libavformat    58. 37.100 / 58. 37.100
     libavdevice    58.  9.103 / 58.  9.103
     libavfilter     7. 73.100 /  7. 73.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input-0.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.37.100

     Duration: 00:00:14.80, start: 1.620000, bitrate: 1499 kb/s
       Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1498 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default)
       Metadata:
         handler_name    : VideoHandler

    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'input-1.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.37.100
     Duration: 00:00:18.48, start: 0.000000, bitrate: 977 kb/s
       Stream #1:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1440x876 [SAR 1:1 DAR 120:73], 903 kb/s, 15.21 fps, 16.67 tbr, 16k tbn, 32k tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'input-2.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.37.100
     Duration: 00:00:22.68, start: 0.000000, bitrate: 1795 kb/s
       Stream #2:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1718 kb/s, 29.54 fps, 50 tbr, 16k tbn, 32k tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #2:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    Input #3, mov,mp4,m4a,3gp,3g2,mj2, from 'input-3.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.37.100
     Duration: 00:00:54.60, start:
    0.000000, bitrate: 404 kb/s
       Stream #3:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1440x876 [SAR 1:1 DAR 120:73], 330 kb/s, 15.24 fps, 16.67 tbr, 16k tbn, 32k tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #3:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    Input #4, mov,mp4,m4a,3gp,3g2,mj2, from 'input-4.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.37.100
     Duration: 00:00:09.36
    , start: 0.000000, bitrate: 1794 kb/s
       Stream #4:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1717 kb/s, 29.38 fps, 50 tbr, 16k tbn, 32k tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #4:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    Stream specifier ':a' in filtergraph description [0:v]scale=1920:1080,setsar=1/1[v0];[0:a]volume=1.0[a0];[1:v]scale=1920:1080,setsar=1/1[v1];[1:a]volume=1.0[a1];[2:v]scale=1920:1080,setsar=1/1[v2];[2:a]volume=1.0[a2];[3:v]scale=1920:1080,setsar=1/1[v3];[3:a]volume=1.0[a3];[4:v]scale=1920:1080,setsar=1/1[v4];[4:a]volume=1.0[a4];[v0][a0][v1][a1][v2][a2][v3][a3][v4][a4]concat=n=5:v=1:a=1[v][a] matches no streams.

    When I removed the stream specifier [a0], I received a different error :

    FFmpeg Video Merge - STDERR: [Parsed_setsar_3 @ 0x7f87c7709100] Media type mismatch between the 'Parsed_setsar_3' filter output pad 0 (video) and the 'Parsed_concat_14' filter input pad 1 (audio)
    [AVFilterGraph @ 0x7f87c7430c00] Cannot create the link setsar:0 -> concat:1

    My question is how will the filter-complex value of my parameter list that I have defined be adjusted to deal with that first video, which has no audio ?

  • React Electron ffmpeg-extract-frames build error

    28 mars 2020, par taylorallen0913

    I am using the npm module ffmpeg-extract-frames for splitting video frames. It works completely fine when I am testing the module in a vanilla node environment. However, when I import the module in my Electron React desktop app component, it gives me a error when building.

    This is how I am importing it :

    const extractFrames = require("ffmpeg-extract-frames");

    This is the error I am getting when building in my React Electron component :

    > expedition-hacks-project@0.1.0 build /home/taylorallen/Desktop/expedition-hacks-project
    > set "FLUENTFFMPEG_COV=false" && react-scripts build

    Creating an optimized production build...
    Failed to compile.

    ./node_modules/fluent-ffmpeg/index.js
    Cannot find module: './lib-cov/fluent-ffmpeg'. Make sure this package is installed.

    You can install this package by running: npm install ./lib-cov/fluent-ffmpeg.


    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! expedition-hacks-project@0.1.0 build: `set "FLUENTFFMPEG_COV=false" && react-scripts build`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the expedition-hacks-project@0.1.0 build script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/taylorallen/.npm/_logs/2020-03-28T22_36_18_100Z-debug.log

    My package.json :

    {
     "name": "expedition-hacks-project",
     "version": "0.1.0",
     "private": true,
     "dependencies": {
       "@testing-library/jest-dom": "^4.2.4",
       "@testing-library/react": "^9.5.0",
       "@testing-library/user-event": "^7.2.1",
       "bootstrap": "^4.4.1",
       "bootstrap-fileinput": "^5.0.8",
       "ffmpeg-extract-frames": "^2.0.2",
       "fluent-ffmpeg": "^2.1.2",
       "jquery": "^3.4.1",
       "popper.js": "^1.16.1",
       "react": "^16.13.1",
       "react-bootstrap": "^1.0.0",
       "react-dom": "^16.13.1",
       "react-dropzone": "^10.2.2",
       "react-icons": "^3.9.0",
       "react-router-dom": "^5.1.2",
       "react-scripts": "3.4.1"
     },
     "homepage": "./",
     "main": "src/main.js",
     "scripts": {
       "start": "react-scripts start",
       "build": "set \"FLUENTFFMPEG_COV=false\" && react-scripts build",
       "test": "react-scripts test",
       "eject": "react-scripts eject",
       "electron": "electron ."
     },
     "eslintConfig": {
       "extends": "react-app"
     },
     "browserslist": {
       "production": [
         ">0.2%",
         "not dead",
         "not op_mini all"
       ],
       "development": [
         "last 1 chrome version",
         "last 1 firefox version",
         "last 1 safari version"
       ]
     },
     "devDependencies": {
       "electron": "^8.2.0",
       "electron-log": "^4.1.0",
       "react-app-rewired": "^2.1.5"
     }
    }

    I found a github issue https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/issues/573#issuecomment-305408048 addressing this error, and I set FLUENTFFMPEG_COV=0 on in my build script

    My scripts :

     "scripts": {
       "start": "react-scripts start",
       "build": "set \"FLUENTFFMPEG_COV=false\" && react-scripts build",
       "test": "react-scripts test",
       "eject": "react-scripts eject",
       "electron": "electron ."
     },

    Setting the env variable seems to not do anything, I still get the same error.

  • avformat/movenc : write the mdcv atom by default

    28 mars 2020, par Michael Bradshaw
    avformat/movenc : write the mdcv atom by default
    

    The mdcv atom isn't in ISO/IEC 14496-12:2015 but it is expected to be
    added soon. See :
    http://ffmpeg.org/pipermail/ffmpeg-devel/2020-April/259529.html

    The mdcv atom is already parsed in FFmpeg in mov.c.

    Signed-off-by : Michael Bradshaw <mjbshaw@google.com>

    • [DH] libavformat/movenc.c