Recherche avancée

Médias (3)

Mot : - Tags -/image

Autres articles (33)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

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

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

Sur d’autres sites (3793)

  • Syncing 3 RTSP video streams in ffmpeg

    26 septembre 2017, par Damon Maria

    I’m using an AXIS Q3708 camera. It internally has 3 sensors to create a 180º view. Each sensor puts out it’s own RTSP stream. To put together the full 180º view I need to pull an image from each stream and place the images side-by-side. Obviously it’s important that the 3 streams be synchronized so the 3 images were taken at the same ’wall clock’ time. For this reason I want to use ffmpeg because it should be a champ at this.

    I intended to use the hstack filter to combine the 3 images. However, it’s causing me a lot of grief and errors.

    What I’ve tried :

    1. Hstack the rtsp streams :

    ffmpeg -i "rtsp://root:root@192.168.13.104/axis-media/media.amp?camera=1" -i "rtsp://root:root@192.168.13.104/axis-media/media.amp?camera=2" -i "rtsp://root:root@192.168.13.104/axis-media/media.amp?camera=3" -filter_complex "[0:v][1:v][2:v]hstack=inputs=3[v]" -map "[v]" out.mp4

    I get lots of RTSP dropped packets decoding errors which is strange given this is an i7-7700K 4.2GHz with an NVIDIA GTX 1080 Ti and 32GB of RAM and the camera is on a local gigabit network :

    [rtsp @ 0xd4eca42a00] max delay reached. need to consume packetA dup=0 drop=136 speed=1.16x    
    [rtsp @ 0xd4eca42a00] RTP: missed 5 packets
    [rtsp @ 0xd4eca42a00] max delay reached. need to consume packetA dup=0 drop=137 speed=1.15x    
    [rtsp @ 0xd4eca42a00] RTP: missed 4 packets
    [h264 @ 0xd4ecbb3520] error while decoding MB 14 15, bytestream -21
    [h264 @ 0xd4ecbb3520] concealing 1185 DC, 1185 AC, 1185 MV errors in P frame

    2. Using ffmpeg -i %s -c:v copy -map 0:0 out.mp4 to save each stream to a file and then run the above hstack command with the 3 files rather than 3 RSTP streams. First off, there are no dropped packets saving the files, and the hstack runs at speed=25x so I don’t know why the operation in 1 had so many errors. But in the resulting video, some parts ’pause’ between frames as tho the same image was used across 2 frames for some of the hstack inputs, but not the others. Also, the ’scene’ at a set distance into the video lags behind the input videos – which would happen if the frames are being duplicated.

    3. If I use the RTSP streams as the input, and for the output specify -f null - (the null demuxer) then the demuxer reports a lot of these errors :

    [null @ 0x76afb1a060] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 1 >= 1
       Last message repeated 1 times
    [null @ 0x76afb1a060] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 2 >= 2
    [null @ 0x76afb1a060] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 3 >= 3
    [null @ 0x76afb1a060] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 4 >= 4
       Last message repeated 1 times
    [null @ 0x76afb1a060] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 5 >= 5
       Last message repeated 1 times

    Which sounds again like frames are being duplicated.

    4. If I add -vsync cfr then the null muxer no longer reports non monotonically increasing dts, and dropped packet / decoding errors are reduced (but still there). Does this show that timing info from the RTSP streams is ’tripping up’ ffmpeg ? I presume it’s not a solution tho because it is essentially wiping out and replacing the timing information ffmpeg would need to use to sync ?

    5. Saving a single RTSP stream (re-encoding, not using the copy codec or null demuxer) logs a lot of warnings like :

    Past duration 0.999992 too large
       Last message repeated 7 times
    Past duration 0.999947 too large
    Past duration 0.999992 too large

    6. I first tried performing this in code (using PyAV). But struck problems when pushing a frame from each container into the 3 hstack inputs would cause hstack to output multiple frames (when it should be only one). Again, this points to hstack duplicating frames.

    7. I have used Wireshark to sniff the RTCP/RTP traffic and the RTCP Sender Report’s have correct NTP timestamps in them matched to the timestamps in the RTP streams.

    8. Using ffprobe to show the frames of a RTSP stream (example below) I would have expected to see real (NTP based timestamps) given they exist in the RTCP packets. I’m not sure what is correct behaviour for ffprobe. But it does show that most frame timestamps are not exactly 0.25s (the camera is running 4 FPS) which might explain -vsync cfr ’fixing’ some issues and the Past duration 0.999992 style errors :

    pkt_pts=1012502
    pkt_pts_time=0:00:11.250022
    pkt_dts=1012502
    pkt_dts_time=0:00:11.250022
    best_effort_timestamp=1012502
    best_effort_timestamp_time=0:00:11.250022
    pkt_duration=N/A
    pkt_duration_time=N/A
    pkt_pos=N/A

    I posted this as a possible hstack bug on the ffmpeg bug tracker but that discussion fizzled out.

    So, question : how do I sync 3 RTSP video streams through hstack in ffmpeg ?

  • How can I crop and encode a video using flutter natively, now that flutter_ffmpeg is discontinued with no alternatives ? [closed]

    13 mars, par Rageh Azzazy

    As of January 6, 2025, FFmpegKit is officially retired (Taner's article).

    


    This also affects the flutter_ffmpeg and ffmpeg_kit_flutter packages.

    


    Most packages for executing video editing commands were built depending on them and so won't work after April 1, 2025 as mentioned in the package documentation and Taner's article. Some packages that depend on flutter_ffmpeg or ffmpeg_kit_flutter are :

    


      

    • video_trimmer
    • 


    • zero_video_trimmer
    • 


    • flutter_video_trimmer
    • 


    • video_trim
    • 


    • bemeli_compress
    • 


    • video_trimmer_pro
    • 


    • ... others
    • 


    


    Editing video using video_editor or video_editor_2 or video_editor_pits has become a problem.

    


    I believe downloading the binaries and doing the whole thing locally is not just tedious but illegal as well.

    


    I broke down exactly what I need to edit videos in my flutter app and I found those package but have not yet tested them.

    


      

    • Trimming : flutter_native_video_trimmer

      


    • 


    • Compression : video_compress or video_compress_plus

      


    • 


    • Muting : video_compress handles this

      


    • 


    • Encoding : Not sure, I just need a simple MP4 video files

      


    • 


    • Cropping : I can't find a solution for video cropping

      


    • 


    


    I don't need to rotate, reverse or do any fancy stuff to the videos, just those five functions.

    


    Now the only way forward is to find a simple video cropping function and an encoder that work on flutter IOS & Android

    


    My question is not looking for external library recommendations but :

    


    Do you have any ideas how to crop a video in flutter natively ?

    


  • ffmpeg video to rtsp not working, ffmpeg is not reading the video frame by frame [closed]

    15 janvier, par Leroy Jeslyn

    Here's the ffmpeg command :

    


    gst-launch-1.0 videotestsrc ! decodebin ! videoconvert ! videoscale \
 ! video/x-raw,width=1280,height=720 ! x264enc speed-preset=ultrafast \
 tune=zerolatency ! rtph264pay ! udpsink host=127.0.0.1 port=5000 sync=false \
 ! rtspserver service=0/test


    


    The output was :

    


    ffmpeg version 7.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers                                   
  built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-
libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth 
--enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libqui
rc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 
--enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable
-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-
cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-lib
shaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enab
le-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --e
nable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59. 39.100 / 59. 39.100
  libavcodec     61. 19.100 / 61. 19.100
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample   5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Render/fire3.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp41isom
    creation_time   : 2025-01-08T13:10:15.000000Z
  Duration: 00:01:21.79, start: 0.000000, bitrate: 12799 kb/s
  Stream #0:0[0x1](und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 12798 kb/s, 14 fps, 14 tbr, 14k tbn (default)
      Metadata:
        creation_time   : 2025-01-08T13:10:15.000000Z
        handler_name    : VideoHandler
        vendor_id       : [0][0][0][0]
        encoder         : AVC Coding
[out#0/rtsp @ 00000178486d9a00] Codec AVOption b:a (set bitrate (in bits/s)) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0000017848d200c0] using SAR=1/1
[libx264 @ 0000017848d200c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0000017848d200c0] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0000017848d200c0] 264 - core 164 r3192 c24e06c - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 d
eblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_q
p_offset=-2 threads=22 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 
direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=14 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00



    


    This is were the output stopped, instead of reading the video frame by frame, it stops here and runs indefinitely. I tried to use VLC and python script to read the rtsp url, but that didn't work.
I tried the alternative using GStreamer, but i couldn't install rtsp-server on Windows 11.

    


    Thank you for your time, any suggestion or answers are appreciated. The end goal is to convert a video to a rtsp url.