Recherche avancée

Médias (1)

Mot : - Tags -/musée

Autres articles (81)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

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

Sur d’autres sites (9165)

  • FFmpeg "Non-monotonous DTS in output stream" error when processing video from Safari's MediaRecorder

    17 juillet 2024, par Hackermon

    I'm recording a video stream in Safari with MediaRecorder, then sending it to a remote server which then uses ffmpeg to reencode the video. When reencoding with FFmpeg, I get a lot of warnings and the final video is broken, frame are glitching and out of sync but the audio sounds fine.

    


    Here's my MediaRecorder script :

    


    const camera = await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
const recorder = new MediaRecorder(camera, {
        mimeType: 'video/mp4', // Safari only supports MP4
        bitsPerSecond: 1_000_000,
});

recorder.ondataavailable = async ({ data: blob }) => {
        // open contents in new tab
        var fileURL = URL.createObjectURL(file);
         window.open(fileURL, '_blank');
};

recorder.start();
setTimeout(() => recorder.stop(), 5000);


    


    I download the video blob from Safari and use this command to reencode it :

    


    ffmpeg -i ./blob.mp4 -preset ultrafast -strict -2 -threads 10 -c copy ./output.mp4


    


    Logs :

    


    ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x559826616000] DTS 29 < 313 out of order
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './chunk1.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 1
    compatible_brands: isomiso5hlsf
    creation_time   : 2024-07-17T14:30:47.000000Z
  Duration: 00:00:01.00, start: 0.000000, bitrate: 3937 kb/s
    Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], 6218 kb/s, 33.36 fps, 600 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      creation_time   : 2024-07-17T14:30:47.000000Z
      handler_name    : Core Media Video
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 420 kb/s (default)
    Metadata:
      creation_time   : 2024-07-17T14:30:47.000000Z
      handler_name    : Core Media Audio
File './safari3.mp4' already exists. Overwrite ? [y/N] Output #0, mp4, to './safari3.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 1
    compatible_brands: isomiso5hlsf
    encoder         : Lavf58.29.100
    Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], q=2-31, 6218 kb/s, 33.36 fps, 600 tbr, 19200 tbn, 600 tbc (default)
    Metadata:
      creation_time   : 2024-07-17T14:30:47.000000Z
      handler_name    : Core Media Video
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 420 kb/s (default)
    Metadata:
      creation_time   : 2024-07-17T14:30:47.000000Z
      handler_name    : Core Media Audio
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x559826644340] Non-monotonous DTS in output stream 0:0; previous: 10016, current: 928; changing to 10017. This may result in incorrect timestamps in the output file.
[mp4 @ 0x559826644340] Non-monotonous DTS in output stream 0:0; previous: 10017, current: 1568; changing to 10018. This may result in incorrect timestamps in the output file.
[mp4 @ 0x559826644340] Non-monotonous DTS in output stream 0:0; previous: 10018, current: 2208; changing to 10019. This may result in incorrect timestamps in the output file.
...x100
frame=  126 fps=0.0 q=-1.0 Lsize=     479kB time=00:00:00.97 bitrate=4026.2kbits/s speed= 130x    
video:425kB audio:51kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.652696%


    


    Not sure what's happening or how to fix it. This issue only happens in Safari, videos from Chrome are perfectly fine.

    


    I've tried various flags :

    


    -fflags +igndts
-bsf:a aac_adtstoasc
-c:v libvpx-vp9 -c:a libopus
etc


    


    None of them seem to fix the issue.

    


  • Filter concat has an unconnected output while Video concatenation in ffmpeg wrapper in java

    28 février 2024, par Thor

    I am trying to stitch variable number of videos using ffmpeg wrapper.

    


    I have this code :

    


    private void videoStich(List<string> videoPaths){&#xA;        FFmpeg ffmpeg = null;&#xA;        FFprobe ffprobe=null;&#xA;        String stitchedOutputPath = outputFolder &#x2B; "/stitched_output.mp4";&#xA;&#xA;        try {&#xA;            ffmpeg = new FFmpeg();&#xA;            ffprobe = new FFprobe();&#xA;        } catch (IOException e) {&#xA;            throw new RuntimeException(e);&#xA;        }&#xA;&#xA;&#xA;        FFmpegBuilder builder = new FFmpegBuilder();&#xA;&#xA;        for (int i = 0; i &lt; videoPaths.size(); i&#x2B;&#x2B;) {&#xA;            String videoPath = videoPaths.get(i);&#xA;            builder.addInput(videoPath);&#xA;        }&#xA;&#xA;        // Add complex filter for concatenation&#xA;        StringBuilder complexFilter = new StringBuilder();&#xA;        for (int i = 0; i &lt; videoPaths.size(); i&#x2B;&#x2B;) {&#xA;            complexFilter.append("[").append(i).append(":v][").append(i).append(":a]");&#xA;//            if (i &lt; videoPaths.size() - 1) {&#xA;//                complexFilter.append("[");&#xA;//            }&#xA;        }&#xA;        complexFilter.append("concat=n=").append(videoPaths.size()).append(":v=1:a=1[v][a]");&#xA;&#xA;        builder.setComplexFilter(complexFilter.toString())&#xA;                .addOutput(stitchedOutputPath)&#xA;                .setFormat("mp4")&#xA;                .done();&#xA;&#xA;        FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);&#xA;        executor.createJob(builder).run();&#xA;    }&#xA;</string>

    &#xA;

    but getting this error :

    &#xA;

    2024-02-28T16:30:53.033&#x2B;05:30  INFO 4711 --- [sample_project] [pool-3-thread-1] net.bramp.ffmpeg.RunProcessFunction      : ffmpeg -version&#xA;2024-02-28T16:30:53.126&#x2B;05:30  INFO 4711 --- [sample_project] [pool-3-thread-1] net.bramp.ffmpeg.RunProcessFunction      : ffmpeg -y -v error -i src/main/resources/cutted_videos/0_trimmed.mp4 -i src/main/resources/cutted_videos/1_trimmed.mp4 -filter_complex [0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a] -f mp4 src/main/resources/cutted_videos/stitched_output.mp4&#xA;Filter concat has an unconnected output&#xA;java.lang.RuntimeException: java.io.IOException: ffmpeg returned non-zero exit status. Check stdout.&#xA;

    &#xA;

    I have been trying to fix this since a long time and didn't find any issue with the filter, it is looking good to me. Can anyone help me with it ?

    &#xA;

    EDIT :&#xA;I found that when I use this command in terminal :

    &#xA;

    ffmpeg -i in1.mp4 -i in2.mp4\&#xA;            -filter_complex "[0:v] [0:a] [1:v] [1:a] \&#xA;concat=n=2:v=1:a=1 [v] [a]" \&#xA;            -f mp4  output_test5.mp4&#xA;

    &#xA;

    it didn ;t work&#xA;while when i used this :

    &#xA;

    ffmpeg -i in1.mp4 -i in2.mp4\&#xA;            -filter_complex "[0:v] [0:a] [1:v] [1:a] \&#xA;concat=n=2:v=1:a=1 [v] [a]" \&#xA;            -f mp4 -map "[v]" -map "[a]" output_test4.mp4&#xA;

    &#xA;

    it worked. I think i need to add -map "[v]" -map "[a]" somehow in the code.

    &#xA;

    but when i try to add :&#xA;builder.setComplexFilter(complexFilter.toString())&#xA;.addOutput(stitchedOutputPath)&#xA;.setFormat("mp4")&#xA;.map()&#xA;.done() ;

    &#xA;

    or

    &#xA;

    builder.setComplexFilter(complexFilter.toString())&#xA;.addOutput(stitchedOutputPath)&#xA;.setFormat("mp4")&#xA;.setMap()&#xA;.done() ;

    &#xA;

    both .set() or setMap() doesn't exist. What to do, how to do ?

    &#xA;

  • There is no data in the inbound-rtp section of WebRTC. I don't know why

    13 juin 2024, par qyt

    I am a streaming media server, and I need to stream video to WebRTC in H.264 format. The SDP exchange has no errors, and Edge passes normally.

    &#xA;

    These are the log debugging details from edge://webrtc-internals/. Both DTLS and STUN show normal status, and SDP exchange is also normal. I used Wireshark to capture packets and saw that data streaming has already started. The transport section (iceState=connected, dtlsState=connected, id=T01) also shows that data has been received, but there is no display of RTP video data at all.

    &#xA;

    timestamp   2024/6/13 16:34:01&#xA;bytesSent   5592&#xA;[bytesSent_in_bits/s]   176.2108579387652&#xA;packetsSent 243&#xA;[packetsSent/s] 1.001198056470257&#xA;bytesReceived   69890594&#xA;[bytesReceived_in_bits/s]   0&#xA;packetsReceived 49678&#xA;[packetsReceived/s] 0&#xA;dtlsState   connected&#xA;selectedCandidatePairId CPeVYPKUmD_FoU/ff10&#xA;localCertificateId  CFE9:17:14:B4:62:C3:4C:FF:90:C0:57:50:ED:30:D3:92:BC:BB:7C:13:11:AB:07:E8:28:3B:F6:A5:C7:66:50:77&#xA;remoteCertificateId CF09:0C:ED:3E:B3:AC:33:87:2F:7E:B0:BD:76:EB:B5:66:B0:D8:60:F7:95:99:52:B5:53:DA:AC:E7:75:00:09:07&#xA;tlsVersion  FEFD&#xA;dtlsCipher  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256&#xA;dtlsRole    client&#xA;srtpCipher  AES_CM_128_HMAC_SHA1_80&#xA;selectedCandidatePairChanges    1&#xA;iceRole controlling&#xA;iceLocalUsernameFragment    R5DR&#xA;iceState    connected&#xA;

    &#xA;

    video recv info

    &#xA;

    inbound-rtp (kind=video, mid=1, ssrc=2124085007, id=IT01V2124085007)&#xA;Statistics IT01V2124085007&#xA;timestamp   2024/6/13 16:34:49&#xA;ssrc    2124085007&#xA;kind    video&#xA;transportId T01&#xA;jitter  0&#xA;packetsLost 0&#xA;trackIdentifier 1395f18c-6ab9-4dbc-9149-edb59a81044d&#xA;mid 1&#xA;packetsReceived 0&#xA;[packetsReceived/s] 0&#xA;bytesReceived   0&#xA;[bytesReceived_in_bits/s]   0&#xA;headerBytesReceived 0&#xA;[headerBytesReceived_in_bits/s] 0&#xA;jitterBufferDelay   0&#xA;[jitterBufferDelay/jitterBufferEmittedCount_in_ms]  0&#xA;jitterBufferTargetDelay 0&#xA;[jitterBufferTargetDelay/jitterBufferEmittedCount_in_ms]    0&#xA;jitterBufferMinimumDelay    0&#xA;[jitterBufferMinimumDelay/jitterBufferEmittedCount_in_ms]   0&#xA;jitterBufferEmittedCount    0&#xA;framesReceived  0&#xA;[framesReceived/s]  0&#xA;[framesReceived-framesDecoded-framesDropped]    0&#xA;framesDecoded   0&#xA;[framesDecoded/s]   0&#xA;keyFramesDecoded    0&#xA;[keyFramesDecoded/s]    0&#xA;framesDropped   0&#xA;totalDecodeTime 0&#xA;[totalDecodeTime/framesDecoded_in_ms]   0&#xA;totalProcessingDelay    0&#xA;[totalProcessingDelay/framesDecoded_in_ms]  0&#xA;totalAssemblyTime   0&#xA;[totalAssemblyTime/framesAssembledFromMultiplePackets_in_ms]    0&#xA;framesAssembledFromMultiplePackets  0&#xA;totalInterFrameDelay    0&#xA;[totalInterFrameDelay/framesDecoded_in_ms]  0&#xA;totalSquaredInterFrameDelay 0&#xA;[interFrameDelayStDev_in_ms]    0&#xA;pauseCount  0&#xA;totalPausesDuration 0&#xA;freezeCount 0&#xA;totalFreezesDuration    0&#xA;firCount    0&#xA;pliCount    0&#xA;nackCount   0&#xA;minPlayoutDelay 0&#xA;

    &#xA;

    wireshark,I have verified that the SSRC in the SRTP is correct.

    &#xA;

    enter image description here

    &#xA;

    This player works normally when tested with other streaming servers. I don't know what the problem is. Is there any way to find out why the web browser cannot play the WebRTC stream that I'm pushing ?

    &#xA;