Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (56)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

  • (Dés)Activation de fonctionnalités (plugins)

    18 février 2011, par

    Pour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
    SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
    Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
    MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

Sur d’autres sites (8945)

  • lavfi : check links properties after configuring them.

    1er novembre 2017, par Nicolas George
    lavfi : check links properties after configuring them.
    

    For now, check the image size.
    Inspired by a patch from Paul B Mahol.

    Invalid sizes would be detected later by allocation failures,
    detecting problems earlier is cleaner.

    • [DH] libavfilter/avfiltergraph.c
  • vf_zscale : Add more supported input properties

    28 novembre 2017, par Vittorio Giovara
    vf_zscale : Add more supported input properties
    

    Bump the minimum version necessary in the configure file.

    Signed-off-by : Vittorio Giovara <vittorio.giovara@gmail.com>

    • [DH] configure
    • [DH] libavfilter/vf_zscale.c
  • Getting video properties with Python without calling external software

    24 juillet 2019, par ullix

    [Update :] Yes, it is possible, now some 20 months later. See Update3 below ! [/update]

    Is that really impossible ? All I could find were variants of calling FFmpeg (or other software). My current solution is shown below, but what I really would like to get for portability is a Python-only solution that doesn’t require users to install additional software.

    After all, I can easily play videos using PyQt’s Phonon, yet I can’t get simply things like dimension or duration of the video ?

    My solution uses ffmpy (http://ffmpy.readthedocs.io/en/latest/ffmpy.html ) which is a wrapper for FFmpeg and FFprobe (http://trac.ffmpeg.org/wiki/FFprobeTips). Smoother than other offerings, yet it still requires an additional FFmpeg installation.

       import ffmpy, subprocess, json
       ffprobe = ffmpy.FFprobe(global_options="-loglevel quiet -sexagesimal -of json -show_entries stream=width,height,duration -show_entries format=duration -select_streams v:0", inputs={"myvideo.mp4": None})
       print("ffprobe.cmd:", ffprobe.cmd)  # printout the resulting ffprobe shell command
       stdout, stderr = ffprobe.run(stderr=subprocess.PIPE, stdout=subprocess.PIPE)
       # std* is byte sequence, but json in Python 3.5.2 requires str
       ff0string = str(stdout,'utf-8')

       ffinfo = json.loads(ff0string)
       print(json.dumps(ffinfo, indent=4)) # pretty print

       print("Video Dimensions: {}x{}".format(ffinfo["streams"][0]["width"], ffinfo["streams"][0]["height"]))
       print("Streams Duration:", ffinfo["streams"][0]["duration"])
       print("Format Duration: ", ffinfo["format"]["duration"])

    Results in output :

       ffprobe.cmd: ffprobe -loglevel quiet -sexagesimal -of json -show_entries stream=width,height,duration -show_entries format=duration -select_streams v:0 -i myvideo.mp4
       {
           "streams": [
               {
                   "duration": "0:00:32.033333",
                   "width": 1920,
                   "height": 1080
               }
           ],
           "programs": [],
           "format": {
               "duration": "0:00:32.064000"
           }
       }
       Video Dimensions: 1920x1080
       Streams Duration: 0:00:32.033333
       Format Duration:  0:00:32.064000

    UPDATE after several days of experimentation : The hachoire solution as proposed by Nick below does work, but will give you a lot of headaches, as the hachoire responses are too unpredictable. Not my choice.

    With opencv coding couldn’t be any easier :

    import cv2
    vid = cv2.VideoCapture( picfilename)
    height = vid.get(cv2.CAP_PROP_FRAME_HEIGHT) # always 0 in Linux python3
    width  = vid.get(cv2.CAP_PROP_FRAME_WIDTH)  # always 0 in Linux python3
    print ("opencv: height:{} width:{}".format( height, width))

    The problem is that it works well on Python2 but not on Py3. Quote : "IMPORTANT NOTE : MacOS and Linux packages do not support video related functionality (not compiled with FFmpeg)" (https://pypi.python.org/pypi/opencv-python).

    On top of this it seems that opencv needs the presence of the binary packages of FFmeg at runtime (https://docs.opencv.org/3.3.1/d0/da7/videoio_overview.html).

    Well, if I need an installation of FFmpeg anyway, I can stick to my original ffmpy example shown above :-/

    Thanks for the help.

    UPDATE2 : master_q (see below) proposed MediaInfo. While this failed to work on my Linux system (see my comments), the alternative of using pymediainfo, a py wrapper to MediaInfo, did work. It is simple to use, but it takes 4 times longer than my initial ffprobe approach to obtain duration, width and height, and still needs external software, i.e. MediaInfo :

    from pymediainfo import MediaInfo
    media_info = MediaInfo.parse("myvideofile")
    for track in media_info.tracks:
       if track.track_type == 'Video':
           print("duration (millisec):", track.duration)
           print("width, height:", track.width, track.height)

    UPDATE3 : OpenCV is finally available for Python3, and is claimed to run on Linux, Win, and Mac ! It makes it really easy, and I verfied that external software - in particular ffmpeg - is NOT needed !

    First install OpenCV via Pip :

    pip install opencv-python

    Run in Python :

    import cv2
    cv2video = cv2.VideoCapture( videofilename)
    height = cv2video.get(cv2.CAP_PROP_FRAME_HEIGHT)
    width  = cv2video.get(cv2.CAP_PROP_FRAME_WIDTH)
    print ("Video Dimension: height:{} width:{}".format( height, width))

    framecount = cv2video.get(cv2.CAP_PROP_FRAME_COUNT )
    frames_per_sec = cv2video.get(cv2.CAP_PROP_FPS)
    print("Video duration (sec):", framecount / frames_per_sec)

    # equally easy to get this info from images
    cv2image = cv2.imread(imagefilename, flags=cv2.IMREAD_COLOR  )
    height, width, channel  = cv2image.shape
    print ("Image Dimension: height:{} width:{}".format( height, width))

    I also needed the first frame of a video as an image, and used ffmpeg for this to save the image in the file system. This also is easier with OpenCV :

    hasFrames, cv2image = cv2video.read()   # reads 1st frame
    cv2.imwrite("myfilename.png", cv2image) # extension defines image type

    But even better, as I need the image only in memory for use in the PyQt5 toolkit, I can directly read the cv2-image into an Qt-image :

    bytesPerLine = 3 * width
    # my_qt_image = QImage(cv2image, width, height, bytesPerLine, QImage.Format_RGB888) # may give false colors!
    my_qt_image = QImage(cv2image.data, width, height, bytesPerLine, QImage.Format_RGB888).rgbSwapped() # correct colors on my systems

    As OpenCV is a huge program, I was concerned about timing. Turned out, OpenCV was never behind the alternatives. I takes some 100ms to read a slide, all the rest combined takes never more than 10ms.

    I tested this successfully on Ubuntu Mate 16.04, 18.04, and 19.04, and on two different installations of Windows 10 Pro. (Did not have Mac avalable). I am really delighted about OpenCV !

    You can see it in action in my SlideSorter program, which allows to sort images and videos, preserve sort order, and present as slideshow. Available here : https://sourceforge.net/projects/slidesorter/