Recherche avancée

Médias (2)

Mot : - Tags -/plugins

Autres articles (56)

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

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

Sur d’autres sites (7152)

  • FFMPEG - Why can't i record a video for more than 10 seconds ?

    12 février 2020, par gabriel

    I’m developing a screen recorder for windows with python but for some reason i can’t record the video for more than 10 seconds.However i can record the audio for more than 10 seconds.
    Also i’m using :

    FFMPEG - to record the video with mp4 extension

    PYAUDIO - to record the sound

    TKINTER - to design the GUI

    Since the problem is with the video recording i will leave the code that i used with ffmpeg :

    """
    cmdGen.py generates ffmpeg commands to record your screen

    """
    import os

    class cmdGen:
       def __init__(self):
           self.fps = 60
           self.source = "desktop"
           self.encoder = 'mpeg4'
           self.hwaccel = None
           self.drawMouse = 1
           self.enableWebcam = False
           self.audList = 0
       def config(self,
                   fps=None,source=None,encoder=None,
                   hwaccel='unchanged',drawMouse=None,
                   webcam=None,audList=None):
           if fps: self.fps = fps
           if source: self.source = source
           if encoder: self.encoder = encoder
           if hwaccel != 'unchanged': self.hwaccel = hwaccel
           if drawMouse: self.drawMouse = 0 if not self.drawMouse else 1
           if webcam: self.enableWebcam = bool(webcam)
           if audList: self.audList = audList
       def setSource(self,isWindow,windowName=""):
           if not isWindow:
               self.source = "desktop"
           else:
               self.source = "title="+windowName
       def setFps(self,fps):
           self.fps = fps
       def setEncode(self,encoder):
           self.encoder = encoder
       def getCmd(self,filename):
           print("ACK")
           finalCmd = ["ffmpeg.exe","-f","gdigrab"]
           finalCmd.extend(['-i',self.source])
           finalCmd.extend(['-framerate',str(self.fps)])
           finalCmd.extend(['-c:v',self.encoder])
           if self.encoder == 'mpeg4':
               finalCmd.extend(['-q:v','7'])
           if self.hwaccel:
               finalCmd.extend(['-hwaccel',self.hwaccel])
           finalCmd.extend(['-draw_mouse',str(self.drawMouse)])
           finalCmd.extend(["-y", filename])
           print(finalCmd)
           return finalCmd
       def getCvtCmd(self,filename):
               # if self.rcchecked.get():
               #     self.mergeProcess = subprocess.Popen(args= ["ffmpeg","-i",'tmp/tmp.mkv','-i','tmp/tmp.wav','-i','tmp/webcamtmp.mkv','-filter_complex','[2:v] scale=640:-1 [inner]; [0:0][inner] overlay=0:0 [out]',"-shortest",'-map','[out]','-y',"ScreenCaptures/"+self.filename])
               # else:
               #     self.mergeProcess = subprocess.Popen(args= ["ffmpeg","-i",'tmp/tmp.mkv','-i','tmp/tmp.wav',"-shortest",'-y',"ScreenCaptures/"+self.filename], startupinfo=startupinfo)
           print("ACK")
           finalCmd = ["ffmpeg.exe"]
           finalCmd.extend(['-i','tmp/tmp.mkv'])
           for i in range(len(self.audList)):
               finalCmd.extend(['-i','tmp/tmp_'+str(i)+'.wav'])
           if len(self.audList) > 0:
               finalCmd.extend(['-filter_complex','amerge=inputs='+str(len(self.audList)),'-ac',str(len(self.audList))])
           # finalCmd.extend(['-c:v',self.encoder])
           if self.enableWebcam:
               finalCmd.extend(['-i','tmp/webcamtmp.mkv','-filter_complex','[2:v] scale=640:-1 [inner]; [0:0][inner] '
                                                                           'overlay=0:0 [out]','-map','[out]'])

           #finalCmd.extend(['-shortest'])
           finalCmd.extend(["-y", filename])
           print(finalCmd)
           return finalCmd

    if __name__ == "__main__":
       cg = cmdGen()
       cg.setEncode("h264_nvenc")
       cg.setFps(60)
       cg.setSource(False)
       print(cg.getCmd("tmp"))

    Thanks guys

    Full log trying to record 1 minute :

    C:\Users\FabianoFreitas\AppData\Local\Programs\Python\Python37\python.exe C:/Users/FabianoFreitas/Desktop/PowerShare-v2.0/screenRecorder.py
    ACK
    ['ffmpeg.exe', '-f', 'gdigrab', '-i', 'desktop', '-framerate', '60', '-c:v', 'mpeg4', '-q:v', '7', '-draw_mouse', '1', '-y', 'tmp/tmp.mkv']
    * recording
    ACK
    ['ffmpeg.exe', '-i', 'tmp/tmp.mkv', '-i', 'tmp/tmp_0.wav', '-filter_complex', 'amerge=inputs=1', '-ac', '1', '-y', 'Videos/ScreenCapture24.mp4']
    * done recording
    ffmpeg version git-2020-02-05-e6891d1 Copyright (c) 2000-2020 the FFmpeg developers
     built with gcc 9.2.1 (GCC) 20200122
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
     libavutil      56. 39.100 / 56. 39.100
     libavcodec     58. 67.101 / 58. 67.101
     libavformat    58. 37.100 / 58. 37.100
     libavdevice    58.  9.103 / 58.  9.103
     libavfilter     7. 74.100 /  7. 74.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    Input #0, matroska,webm, from 'tmp/tmp.mkv':
     Metadata:
       ENCODER         : Lavf58.37.100
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: mpeg4 (Simple Profile), yuv420p, 2560x1080 [SAR 1:1 DAR 64:27], 29.97 fps, 29.97 tbr, 1k tbn, 30k tbc (default)
       Metadata:
         ENCODER         : Lavc58.67.101 mpeg4
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, wav, from 'tmp/tmp_0.wav':
     Duration: 00:01:09.08, bitrate: 1411 kb/s
       Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Stream mapping:
     Stream #1:0 (pcm_s16le) -> amerge (graph 0)
     amerge (graph 0) -> Stream #0:0 (aac)
     Stream #0:0 -> #0:1 (mpeg4 (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    [Parsed_amerge_0 @ 00000218cb4c1640] No channel layout for input 1
    [libx264 @ 00000218cb4acdc0] using SAR=1/1
    [libx264 @ 00000218cb4acdc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 00000218cb4acdc0] profile High, level 5.0, 4:2:0, 8-bit
    [libx264 @ 00000218cb4acdc0] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=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_qp_offset=-2 threads=12 lookahead_threads=2 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=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'Videos/ScreenCapture24.mp4':
     Metadata:
       encoder         : Lavf58.37.100
       Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s
       Metadata:
         encoder         : Lavc58.67.101 aac
       Stream #0:1: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 2560x1080 [SAR 1:1 DAR 64:27], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default)
       Metadata:
         encoder         : Lavc58.67.101 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    [matroska,webm @ 00000218cb44af00] File ended prematurely
    frame=  297 fps=113 q=-1.0 Lsize=    2325kB time=00:01:09.07 bitrate= 275.8kbits/s dup=22 drop=0 speed=26.2x    
    video:1713kB audio:591kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.900237%
    [aac @ 00000218cb4ab780] Qavg: 24995.135
    [libx264 @ 00000218cb4acdc0] frame I:4     Avg QP:15.13  size:199596
    [libx264 @ 00000218cb4acdc0] frame P:85    Avg QP:21.15  size:  9466
    [libx264 @ 00000218cb4acdc0] frame B:208   Avg QP:24.93  size:   725
    [libx264 @ 00000218cb4acdc0] consecutive B-frames:  5.1%  2.7%  6.1% 86.2%
    [libx264 @ 00000218cb4acdc0] mb I  I16..4: 48.0% 45.3%  6.7%
    [libx264 @ 00000218cb4acdc0] mb P  I16..4:  1.6%  1.9%  0.8%  P16..4:  1.4%  0.4%  0.3%  0.0%  0.0%    skip:93.7%
    [libx264 @ 00000218cb4acdc0] mb B  I16..4:  0.1%  0.1%  0.0%  B16..8:  3.0%  0.1%  0.0%  direct: 0.0%  skip:96.6%  L0:51.2% L1:48.3% BI: 0.6%
    [libx264 @ 00000218cb4acdc0] 8x8 transform intra:44.4% inter:69.1%
    [libx264 @ 00000218cb4acdc0] coded y,uvDC,uvAC intra: 23.8% 27.4% 19.5% inter: 0.2% 0.3% 0.1%
    [libx264 @ 00000218cb4acdc0] i16 v,h,dc,p: 54% 45%  1%  0%
    [libx264 @ 00000218cb4acdc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 20% 41%  2%  2%  1%  2%  1%  5%
    [libx264 @ 00000218cb4acdc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 35% 17%  2%  3%  3%  4%  2%  4%
    [libx264 @ 00000218cb4acdc0] i8c dc,h,v,p: 61% 25% 11%  2%
    [libx264 @ 00000218cb4acdc0] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 00000218cb4acdc0] ref P L0: 68.0%  6.3% 16.6%  9.1%
    [libx264 @ 00000218cb4acdc0] ref B L0: 70.2% 23.7%  6.1%
    [libx264 @ 00000218cb4acdc0] ref B L1: 91.1%  8.9%
    [libx264 @ 00000218cb4acdc0] kb/s:1415.80
  • How to record browser animation to video, on Server/VPS

    11 novembre 2015, par Andy B

    I have one big question : How to record an animation that plays in the browser on a server/VPS ? We’re looking for a open/source or even proprietary solution.

    The use-case :

    We have an online project that generates animations and we want to record them on the server side.
    Practically it’s as simple as that, as opening a url(eg : https://greensock.com/gsap) in the browser and record the animation.

    On the local PC it works if we use ffmpeg, but we want to record the video on the server side, especially on a VPS without GUI.

    There are some solutions :

    1. Install a Lightweight GUI on the VPS, accesible through VNC

    Something like this :
    https://vpsboard.com/topic/2786-running-a-lightweight-gui-on-your-vps/

    Then create a cron job that will do the following :

    • open the browser with the correct url and play the animation
    • use ffmpeg to record the animation
    • save the video somewhere

    This solution allows a SINGLE execution thread at the same time and I don’t really like the setup.

    1. Use a fake X server

    Create/use a fake X server, tell the browser to run in there, tell ffmpeg to record that screen !?

    The question is : HOW ?

    1. Virtual Machines within the VPS

    The question is : HOW ?

    I would like to have the possibility to execute this job in a sort of container (be it docker or virtual machines within the VPS), having also the possibility to execute multiple jobs in parallel.

    Thank you all in advance !

  • How to record 720p videos without dropping frames in Android

    20 novembre 2015, par user2880229

    I compiled ffmpeg and h264 libraries for android using NDK.
    I am recording videos using the muxing.c example from the ffmpeg library. Everything works correct (still haven’t worked on the audio) but the camera is dropping frames and it takes around 100ms to save each frame, which is unacceptable.

    I have also tried making a queue and saving them into another thread (let’s call it B) but at the end I need to wait for around 120 seconds because the background thread (B)is still recording the frames.

    Is there a workaround for this issue, besides reducing the video size ? Ideally I would like to save the frames in real time, at least reduce the saving time. Is it just that Android is incapable of doing this ? .