Recherche avancée

Médias (1)

Mot : - Tags -/musée

Autres articles (30)

  • Submit enhancements and plugins

    13 avril 2011

    If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
    You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone.

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

Sur d’autres sites (6499)

  • avutil/test/pixfmt_best : test the VUYA pixel format

    7 août 2022, par James Almer
    avutil/test/pixfmt_best : test the VUYA pixel format
    

    Signed-off-by : James Almer <jamrial@gmail.com>

    • [DH] libavutil/tests/pixfmt_best.c
  • How to batch process a series of video files with powershell and other-transcode/ffmpeg

    7 juin 2022, par DarkDiamond

    TL ;DR

    &#xA;

    What did I do wrong in the following PowerShell-Script ? It does not work as expected.

    &#xA;


    &#xA;

    I am recording some of my lectures in my university with a photo camera. This works pretty well although I have to split the single lecture into three to four parts because the camera can only record 29 minutes of video in one take. I know that this is a common issue related to some licensensing problem that most photo cameras simply don't have the right license to record longer videos. But it confronts me with the problem that I later have to edit the files together after I did some post processing on them.

    &#xA;

    With the camera I produce up to four video files with sizes around 3.5 GB which is way to big in order to be of any use because our IT department understandably doesn't want to host so much data, as I produce around 22 GB of video material each week.

    &#xA;

    Some time ago I came across a very useful tool called "other-video-transcoding" by Don Melton over on GitHub, written in ruby, that allows me to compress the files to a reasonable file size without any visual loss. In addition I crop the videos to remove the part of each frame that is neither the board nor a place where my professor stands in order to decrease the filesize even further and do some privacy protection by cutting out most of the students.

    &#xA;

    As the tools are accessable via the command line, it is relatively easy to configure and does not cost additional computational power to render a nice gui, so I can edit one of the 29 minute clips in less than 10 minutes.

    &#xA;

    Now I wanted to optimize my workflow by writing a PowerShell script that only takes the parameters what to crop and which files to work on and then does the rest on its own so I can just start the script and then do something else while my laptop renders the new files.

    &#xA;

    So far I have the following :

    &#xA;

    $video_path = Get-ChildItem ..\ -Directory | findstr "SoSe"&#xA;&#xA;Get-ChildItem $video_path -name | findstr ".MP4" | Out-File temp.txt -Append &#xA;Get-Content temp.txt | ForEach-Object {"file " &#x2B; $_} >> .\files.txt&#xA;&#xA;Get-ChildItem $video_path |&#xA;Foreach-Object {&#xA;other-transcode --hevc --mp4 --target 3000 --crop 1920:780:0:0 $_.FullName&#xA;}&#xA;&#xA;#other-transcode --hevc --mp4 --crop 1920:720:60:0 ..\SoSe22_Theo1_videos_v14_RAW\&#xA;ffmpeg -f concat -i files.txt -c copy merged.mp4&#xA;Remove-Item .\temp.txt&#xA;

    &#xA;

    but it does not quite do what I it expect to do.&#xA;This is my file system :

    &#xA;

    sciebo/&#xA;└── SoSe22_Theo1_videos/&#xA;    ├── SoSe22_Theo1_videos_v16/&#xA;    │   ├── SoSe22_Theo1_videos_v16_KOMPR/&#xA;    │   │   ├── C0001.mp4&#xA;    │   │   ├── C0002.mp4&#xA;    │   │   ├── C0003.mp4&#xA;    │   │   ├── C0004.mp4&#xA;    │   │   ├── temp.txt&#xA;    │   │   ├── files.txt&#xA;    │   │   └── merged.mp4&#xA;    │   └── SoSe22_Theo1_videos_v16_RAW/&#xA;    │       ├── C0001.mp4&#xA;    │       ├── C0002.mp4&#xA;    │       ├── C0003.mp4&#xA;    │       └── C0004.mp4&#xA;    └── SoSe22_Theo1_videos_v17/&#xA;        ├── SoSe22_Theo1_videos_v17_KOMPR&#xA;        └── SoSe22_Theo1_videos_v17_RAW/&#xA;            ├── C0006.mp4&#xA;            ├── C0007.mp4&#xA;            ├── C0008.mp4&#xA;            └── C0009.mp4&#xA;

    &#xA;

    where the 16th lecture is already processed and the 17th is not. I always have the raw video data in the folders ending on RAW and the edited/compressed output files in the one ending on KOMPR. Note that the video files in the KOMPR folder are the output files of the other-transcode tool.

    &#xA;

    The real work happens in the line where it says

    &#xA;

    other-transcode --hevc --mp4 --target 3000 --crop 1920:780:0:0 $_.FullName&#xA;

    &#xA;

    and in the line

    &#xA;

    ffmpeg -f concat -i files.txt -c copy merged.mp4&#xA;

    &#xA;

    where I concat the output files into the final version I can upload to our online learning platform.&#xA;What is wrong with my script ? In the end I'd like to pass the --crop parameter just to my script, but that is not the primary problem.

    &#xA;


    &#xA;

    A little information on the transcoding script so you don't have to look into the documentation :
    &#xA;As the last argument the tool takes the location of the video files to work on, be it relative or absolute file paths. The output is placed in the folder the script is called in, so if I cd into one of the KOMPR directories and then call

    &#xA;

    other-transcode --mp4 ../SoSe22_Theo1_videos_v16_RAW/C0001.mp4&#xA;

    &#xA;

    a new file C0001.mp4 is created in the KOMPR directory and the transcoded video and old audio are written to that new video file.

    &#xA;

  • Python ThreadedTCPServer : "Name or service not known"

    11 avril 2014, par Hal

    I was developing a ThreadedTCPServer to communicate with a PHP application also residing in this same machine. This is suppose to receive requests from this PHP app and to convert some videos locally using ffmpeg.

    Here's the code :

    # -*- coding: utf-8 -*-
    import os
    import socket
    import threading
    import logging.config
    import SocketServer, time
    from queuev2 import QueueServer

    logging.basicConfig(format=&#39;[%(asctime)s.%(msecs).03d] %(message)s&#39;, datefmt=&#39;%Y-%m-%d %H:%M:%S&#39;, filename=os.path.join(os.path.dirname(os.path.realpath(__file__)), &#39;converter.log&#39;), level=logging.INFO)

    class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):

       def handle(self):
           data = self.request.recv(1024)
           cur_thread = threading.current_thread()
           response = "{}: {}".format(cur_thread.name, data)
           videoPool.add(data)
           print "Output! %s" % data
           self.request.sendall(response)

    class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
       pass

    if __name__ == "__main__":

       logging.info("Initializing...")
       videoPool = QueueServer()
       HOST, PORT = "localhost", 6666

       server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
       ip, port = server.server_address

       # Start a thread with the server -- that thread will then start one
       # more thread for each request
       server_thread = threading.Thread(target=server.serve_forever)

       # Exit the server thread when the main thread terminates
       server_thread.daemon = True
       server_thread.start()

       print("Server loop running in thread: %s" % server_thread.name)

       # "Groundhog day" time
       while True:
           time.sleep(999)
           pass

       #server.shutdown()

    This works well in my development laptop, but on the server i'm getting the following error :

    Traceback (most recent call last):
     File "server.py", line 31, in <module>
       server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
     File "/usr/lib/python2.7/SocketServer.py", line 408, in __init__
       self.server_bind()
     File "/usr/lib/python2.7/SocketServer.py", line 419, in server_bind
       self.socket.bind(self.server_address)
     File "/usr/lib/python2.7/socket.py", line 224, in meth
       return getattr(self._sock,name)(*args)
    socket.gaierror: [Errno -2] Name or service not known
    </module>

    I'm guessing it has to do with the port I'm using (6666), but I've tried others and it hasn't been working. Would Unix Domain Sockets be of use here ? Can you give me an example ?