Recherche avancée

Médias (91)

Autres articles (39)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (4888)

  • Cannot duplicate virtual camera on Orange Pi 5B [closed]

    21 janvier 2024, par Denis Kotov

    I have faced with the issue that I cannot duplicate virtual camera for SkyDroid 5.8GHz OTG Receiver on Orange Pi 5B :

    


    orangepi@orangepi-desktop:~$ gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink device=/dev/video2

Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Could not initialise Xv output
Additional debug info:
../sys/xvimage/xvimagesink.c(1806): gst_xv_image_sink_open (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
Could not open display (null)
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...

orangepi@orangepi-desktop:~$ gst-launch-1.0 v4l2src device=/dev/video0 ! v4l2sink device=/dev/video2

Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Cannot identify device '/dev/video2'.
Additional debug info:
../sys/v4l2/v4l2_calls.c(608): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
system error: No such file or directory
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...


    


    Also I tried to duplicate video camera using ffmpeg :

    


    orangepi@orangepi-desktop:~$ sudo ffmpeg -f video4linux2 -i /dev/video0 -codec copy -f v4l2 /dev/video2

ffmpeg version 6.0-5+git230804.e243e8d001~j1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr --extra-version='5+git230804.e243e8d001~j1' --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --arch=arm64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-version3 --enable-rkmpp --enable-sdl2 --disable-sndio --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-shared
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
[mjpeg @ 0xaaab04104190] EOI missing, emulating
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 3317.330868, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 30 fps, 30 tbr, 1000k tbn
[video4linux2,v4l2 @ 0xaaab04105750] Unable to open V4L2 device '/dev/video2'
[out#0/video4linux2,v4l2 @ 0xaaab040b9200] Could not write header (incorrect codec parameters ?): No such file or directory
[vost#0:0/copy @ 0xaaab04107640] Error initializing output stream: 
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
    Last message repeated 1 times
[video4linux2,v4l2 @ 0xaaab041039d0] Some buffers are still owned by the caller on close.
ioctl(VIDIOC_QBUF): Bad file descriptor


    


    But it also did not work ...

    


    The reason I want it, because I try to have additional processing using OpenCV but the camera is opened by another application, and it is not possible to similtuniuously open camera in 2 applications at the same time ...

    


    Have somebody faced with similar issue ?

    


  • how can I pipe gstreamer output to ffmpeg [closed]

    11 décembre 2019, par alex jef

    how can I pipe GStreamer output to FFmpeg ?
    I have already tried some, none of them are working, e.g :

    gst-launch-1.0 -e -v  videotestsrc  ! video/x-raw, width=1920, height=1080, framerate=5/1, format=NV12  ! filesink location=/dev/stdout  | ffmpeg -i pipe:0 ao.avi
    ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
     configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
     libavutil      54. 31.100 / 54. 31.100
     libavcodec     56. 60.100 / 56. 60.100
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 40.101 /  5. 40.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    pipe:0: Invalid data found when processing input

    any help would be appreciated.

  • Gstreamer Multiple Source with Single Sink Implementation in PythonGST

    11 octobre 2018, par biswajitGhosh

    I’m new to Gstreamer as well as Python-GST also. I have to collect multiple source raw video stream data into a single sink, I don’t know, if it is possible or not.

    Lets explain more my scenario :

    I have 2 video source server for now, one is my webcam and another is just an mp4 file, I did open those source using following command

    Source1 :

    gst-launch-1.0 v4l2src device=/dev/video0 !
    ’video/x-raw,width=640,height=480’ ! x264enc pass=qual quantizer=20
    tune=zerolatency ! rtph264pay ! udpsink host=127.0.0.1 port=5000

    Source2 :

    gst-launch-1.0 filesrc location = file_name.mp4 !
    ’video/x-raw,width=640,height=480’ ! x264enc pass=qual quantizer=20
    tune=zerolatency ! rtph264pay ! udpsink host=127.0.0.1 port=5000

    I’m trying to send both stream data to localhost 5000 port after encoding with H264.

    For receiving I have a Python Sink Server like this :

    import gi
    gi.require_version('Gst', '1.0')
    gi.require_version('GstApp', '1.0')
    from gi.repository import GObject, Gst, GstApp

    GObject.threads_init()
    Gst.init(None)
    GST_DEBUG="6"

    class Example:
       def __init__(self):
           self.mainloop   = GObject.MainLoop()
           self.pipeline   = Gst.Pipeline.new("Pipeline")
           self.bus        = self.pipeline.get_bus()
           self.bus.add_signal_watch()
           self.bus.connect("message", self.on_message)
           # self.bus.connect('message::eos', self.on_eos)
           # self.bus.connect('message::error', self.on_error)
           # self.bus.connect("sync-message::element", self.on_sync_message)

           #Create QUEUE elements
           self.queue1     = Gst.ElementFactory.make("queue",          None)
           self.queue2     = Gst.ElementFactory.make("queue",          None)

           # Create the elements
           self.source     = Gst.ElementFactory.make("udpsrc",         None)
           self.depay      = Gst.ElementFactory.make("rtph264depay",   None)
           self.parser     = Gst.ElementFactory.make("h264parse",      None)
           self.decoder    = Gst.ElementFactory.make("avdec_h264",     None)
           self.sink       = Gst.ElementFactory.make("appsink",        None)

           # Add elements to pipeline
           self.pipeline.add(self.source)
           self.pipeline.add(self.queue1)
           self.pipeline.add(self.depay)
           self.pipeline.add(self.parser)
           self.pipeline.add(self.decoder)
           self.pipeline.add(self.queue2)
           self.pipeline.add(self.sink)

           # Set properties
           self.source.set_property('port', 5000)
           self.source.set_property('caps', Gst.caps_from_string("application/x-rtp, encoding-name=H264,payload=96"))
           self.sink.set_property('emit-signals', True)
           # turns off sync to make decoding as fast as possible
           self.sink.set_property('sync', False)
           self.sink.connect('new-sample', self.on_new_buffer, self.sink)




       def on_new_buffer(self, appsink, data):
           print "exec two..."
           appsink_sample = GstApp.AppSink.pull_sample(self.sink)
           # with open('example.h264', 'a+') as streamer:
           buff = appsink_sample.get_buffer()
           size, offset, maxsize = buff.get_sizes()
           frame_data = buff.extract_dup(offset, size)
           print(size)
           # flag, info = buff.map(Gst.MapFlags.READ)
           # streamer.write(info.data)
           # print(info.size)
           return False

       def run(self):
           ret = self.pipeline.set_state(Gst.State.PLAYING)        
           if ret == Gst.StateChangeReturn.FAILURE:
               print("Unable to set the pipeline to the playing state.")
               exit(-1)

           self.mainloop.run()

       def kill(self):
           self.pipeline.set_state(Gst.State.NULL)
           self.mainloop.quit()

       def on_eos(self, bus, msg):
           print('on_eos()')
           self.kill()

       def on_error(self, bus, msg):
           print('on_error():', msg.parse_error())
           self.kill()

       def on_message(self, bus, message):
           t = message.type
           if t == Gst.MessageType.EOS:
               print "End of Stream :("
               self.kill()
           elif t == Gst.MessageType.ERROR:
               err, debug = message.parse_error()
               print "Error: %s" % err, debug
               self.kill()


       def on_sync_message(self, bus, message):
           print message.src


    example = Example()
    example.run()

    Firstly AppSink callback does not working, I don’t know why ? I think I have to make that configuration correct into Python Code. Can any one please help to figure it out ?

    Secondly when I tried with FFMpeg and FFPlay I got so many H264 encoding issues like this :

    enter image description here

    Main confusion is Can GStreamer handle Multiple Source data into a single sink(I need to distinguished each video frame).

    Thanks a lot.