Recherche avancée

Médias (91)

Autres articles (34)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

Sur d’autres sites (3710)

  • FFMPEG - Merge two videos with timecode sync

    25 mai 2022, par Olivier Rivard

    We are recording 2 videos from 2 cameras. There is a Timecode metadata attached two the 2 videos. But the starting and stopping of the 2 recodings could have a small difference in time. Less than a second, mostly couple of frames.

    


    One of the video has also the audio recording.
We used ffprobe to extract timecode to analyze the difference.

    


    The difference in timecode won't always be the same.

    


    Ex :
video1.mov timecode : 20:41:11:21
video2.mov timecode : 20:41:11:52

    


    This is the current command that we use to combine the 2 videos side by side to have a look similar to a Zoom call. The only issue is that our videos are out of sync.

    


    ./ffmpeg -i video1.mov -i video2.mov -filter_complex "[0:v]pad=iw*2:ih[int]; [int][1:v]overlay=W/2:0[vid]; [0:a][1:a]amix=inputs=2:duration=longest[aud]" -r 30 -map [vid]" -map "[aud]" output.mp4


    


    We want to make sure that the 2 videos are sync by the timecode.

    


    Example of a combine video :
enter image description here

    


  • Generating DASH manifest with ffmpeg works in Docker exec shell but not in os.exec golang

    22 février 2023, par Inquisitor

    I am trying to generate a DASH manifest with ffmpeg using this command

    


    /usr/bin/ffmpeg -f webm_dash_manifest -i ./480.webm -f webm_dash_manifest -i ./audio.webm -c copy -map 0:0 -map 1:0 -y -f webm_dash_manifest -adaptation_sets "id=0,streams=0 id=1,streams=1" ./manifest.mpd -loglevel repeat+level+verbose


    


    I run this in go, in a docker container as shown :

    


    func runFFmpeg(arguments []string) {
    arguments = append(arguments, "-loglevel", "repeat+level+verbose")
    cmd := exec.Command("ffmpeg", arguments...)

    fmt.Printf("cmd: %v\n", cmd)

    var out bytes.Buffer
    var stderr bytes.Buffer
    cmd.Stdout = &out
    cmd.Stderr = &stderr
    err := cmd.Run()

    if err != nil {
        log.Println(err)
        log.Println(stderr.String())
    }
}
runFFmpeg([]string{"-f", "webm_dash_manifest", "-i", "./480.webm", "-f", "webm_dash_manifest", "-i", "./audio.webm", "-c", "copy", "-map", "0:0", "-map", "1:0", "-y", "-f", "webm_dash_manifest", "-adaptation_sets", "\"id=0,streams=0 id=1,streams=1\"", "./manifest.mpd"})


    


    But I get this output :

    


     cmd: /usr/bin/ffmpeg -f webm_dash_manifest -i ./480.webm -f webm_dash_manifest -i ./audio.webm -c copy -map 0:0 -map 1:0 -y -copy_unknown -f webm_dash_manifest -adaptation_sets "id=0,streams=0 id=1,streams=1" ./manifest.mpd -loglevel repeat+level+verbose
 2023/02/22 04:45:17 exit status 1
 2023/02/22 04:45:17 [info] ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
 [info]   built with gcc 12.2.1 (Alpine 12.2.1_git20220924-r3) 20220924
 [info]   configuration: --prefix=/usr --enable-avfilter --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libpulse --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-libdav1d --enable-lto --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --enable-librist --enable-libsrt --enable-libssh --enable-libvidstab --disable-stripping --disable-static --disable-librtmp --disable-lzma --enable-libaom --enable-libopus --enable-libsoxr --enable-libwebp --enable-vaapi --enable-vdpau --enable-vulkan --enable-libdrm --enable-libzmq --optflags=-O2 --disable-debug --enable-libsvtav1
 [info]   libavutil      57. 28.100 / 57. 28.100
 [info]   libavcodec     59. 37.100 / 59. 37.100
 [info]   libavformat    59. 27.100 / 59. 27.100
 [info]   libavdevice    59.  7.100 / 59.  7.100
 [info]   libavfilter     8. 44.100 /  8. 44.100
 [info]   libswscale      6.  7.100 /  6.  7.100
 [info]   libswresample   4.  7.100 /  4.  7.100
 [info]   libpostproc    56.  6.100 / 56.  6.100
 [webm_dash_manifest @ 0x7fcec2836100] [warning] Could not find codec parameters for stream 0 (Video: vp9, 1 reference frame, none(tv, progressive, left), 640x480): unspecified pixel format
 Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
 [info] Input #0, webm_dash_manifest, from './480.webm':
 [info]   Metadata:
 [info]     title           : Big Buck Bunny, Sunflower version
 [info]     GENRE           : Animation
 [info]     MAJOR_BRAND     : isom
 [info]     MINOR_VERSION   : 1
 [info]     COMPATIBLE_BRANDS: isomavc1
 [info]     COMPOSER        : Sacha Goedegebure
 [info]     ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013
 [info]     COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
 [info]     ENCODER         : Lavf59.27.100
 [info]   Duration: 00:10:34.60, bitrate: 352 kb/s
 [info]   Stream #0:0: Video: vp9, 1 reference frame, none(tv, progressive, left), 640x480, SAR 853:640 DAR 853:480, 30 fps, 30 tbr, 1k tbn (default)
 [info]     Metadata:
 [info]       HANDLER_NAME    : GPAC ISO Video Handler
 [info]       VENDOR_ID       : [0][0][0][0]
 [info]       ENCODER         : Lavc59.37.100 libvpx-vp9
 [info]       DURATION        : 00:10:34.600000000
 [info]       webm_dash_manifest_duration: 634600
 [info]       webm_dash_manifest_initialization_range: 889
 [info]       webm_dash_manifest_file_name: 480.webm
 [info]       webm_dash_manifest_track_number: 1
 [info]       webm_dash_manifest_cues_start: 27924928
 [info]       webm_dash_manifest_cues_end: 27927508
 [info]       webm_dash_manifest_bandwidth: 738287
 [info]       webm_dash_manifest_cluster_keyframe: 1
 [info]       webm_dash_manifest_cue_timestamps: 67,5067,10067,15067,20067,25067,30067,35067,40067,45067,50067,55067,60067,65067,70067,75067,80067,85067,90067,95067,100067,105067,110067,115067,120067,125067,130067,135067,140067,145067,150067,155067,160067,165067,170067,175067,180067,185067,190067,195067
 [info] Input #1, webm_dash_manifest, from './audio.webm':
 [info]   Metadata:
 [info]     title           : Big Buck Bunny, Sunflower version
 [info]     GENRE           : Animation
 [info]     MAJOR_BRAND     : isom
 [info]     MINOR_VERSION   : 1
 [info]     COMPATIBLE_BRANDS: isomavc1
 [info]     COMPOSER        : Sacha Goedegebure
 [info]     ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013
 [info]     COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
 [info]     ENCODER         : Lavf59.27.100
 [info]   Duration: 00:05:35.91, bitrate: 120 kb/s
 [info]   Stream #1:0: Audio: vorbis, 48000 Hz, 5.1, fltp (default)
 [info]     Metadata:
 [info]       HANDLER_NAME    : GPAC ISO Audio Handler
 [info]       VENDOR_ID       : [0][0][0][0]
 [info]       ENCODER         : Lavc59.37.100 libvorbis
 [info]       DURATION        : 00:05:35.907000000
 [info]       webm_dash_manifest_duration: 335907
 [info]       webm_dash_manifest_initialization_range: 7411
 [info]       webm_dash_manifest_file_name: audio.webm
 [info]       webm_dash_manifest_track_number: 1
 [info]       webm_dash_manifest_cues_start: 5047497
 [info]       webm_dash_manifest_cues_end: 5048846
 [info]       webm_dash_manifest_bandwidth: 126994
 [info]       webm_dash_manifest_cluster_keyframe: 1
 [info]       webm_dash_manifest_cue_timestamps: 0,4986,9980,14962,19959,24956,29946,34930,39916,44911,49908,54892,59874,64868,69858,74858,79855,84847,89834,94834,99826,104826,109826,114818,119812,124799,129780,134770,139756,144743,149727,154719,159714,164706,169698,174687,179668,184667,189658,194650,19
 HERE'S THE ERROR --> [error] Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
 [error] Error initializing output stream 0:1 -- 
 [info] Stream mapping:
 [info]   Stream #0:0 -> #0:0 (copy)
 [info]   Stream #1:0 -> #0:1 (copy)
 [error] 
 [AVIOContext @ 0x7fcebe23a840] [verbose] Statistics: 0 bytes written, 0 seeks, 0 writeouts
 [AVIOContext @ 0x7fcebe23a980] [verbose] Statistics: 5940786 bytes read, 133 seeks
 [AVIOContext @ 0x7fcebe23acc0] [verbose] Statistics: 2260628 bytes read, 72 seeks


    


    It works perfectly however if I run it within docker exec (exec into the container and run the command in bash). Also, note in the last output that the command is well formed when I print it out from go. File permissions are also not the problem since the command to create the video variants works with os.exec i.e

    


    runFFmpeg([]string{"-i", originalFilePath, "-c:v", "libvpx-vp9", "-keyint_min", "150", "-g", "150", "-tile-columns", "4", "-frame-parallel", "1", "-f", "webm", "-dash", "1", "-an", "-vf", fmt.Sprintf("scale=%s:%s", width, height), "-b:v", bitRate, "-dash", "1", "-y", destinationFilePath})


    


  • How to stream two videos concurrently using js or react or node js ?

    15 novembre 2022, par itayush

    I am trying to create a video streaming website which can play multiple videos concurrently (something similar to a video management system). The requirement for now is just to be able to play two videos at the same time.

    


    All the tutorials I have seen so far are streaming only one video. I am a bit lost and helpless since I am still learning about JS as well. So, here, I am hoping that any of you could make some suggestion on the libraries that I could use (I learned about ffmpeg), even the process on how to make it work or how to kick start.

    


    Any help would be very much appreciated !

    


    I can already stream a video using node JS and I am hoping to play two videos at the same time.