Recherche avancée

Médias (0)

Mot : - Tags -/presse-papier

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (35)

  • 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 vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

Sur d’autres sites (6852)

  • FFmpeg stops encoding when log file reaches 388 kB

    30 janvier 2018, par Rune Aspvik

    I’m using ffmpeg in a node application with this command :

    ffmpeg -seekable 0 -i http://127.0.0.1:8100/Mjpeg/1?authToken=xxx -video_size 1280x720 -r 30 -pix_fmt yuv420p -y D:\Video\pflyers\test.mp4

    The encoding would stop after 28:53 every time. After some reading I figured I had to spawn the child instead of exec because of the large sterr output.

    Before doing that I wanted to see if that was in fact the issue so I tried doing :

    -nostats -hide_banner -loglevel panic

    to avoid the large output to sterr. FFmpeg still stopped after 28:53. Further I tried to write the sterr to log.txt instead of using the above code. I did so adding this to the end :

    2> log.txt

    Still it would stop at 28:53.

    Finally I tried running the command in cmd.exe resulting in the encoding stopping at 29:14.

    What I realized comparing the outputs from ffmpeg run from node and run from cmd.exe was that the encoding stopped when the log.txt reached 388kB.

    How can I fix this ?

    Here’s the full output :

    C:\Users\VossVind>ffmpeg -seekable 0 -i http://127.0.0.1:8100/Mjpeg/1?authToken=xxx -video_size 1280x720 -r 30 -pix_fmt yuv420p -y D:\Video\pflyers\test.mp4
    ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
     built with gcc 7.2.0 (GCC)
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --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-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    Input #0, mpjpeg, from 'http://127.0.0.1:8100/Mjpeg/1?authToken=xxx':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x720 [SAR 96:96 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    [swscaler @ 0000019639b27fc0] deprecated pixel format used, make sure you did set range correctly
    [libx264 @ 0000019639944040] using SAR=1/1
    [libx264 @ 0000019639944040] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
    [libx264 @ 0000019639944040] profile High, level 3.1
    [libx264 @ 0000019639944040] 264 - core 152 r2851 ba24899 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=18 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=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 'D:\Video\pflyers\test.mp4':
     Metadata:
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.107.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    More than 1000 frames duplicated  114432kB time=00:03:17.80 bitrate=4739.3kbits/s dup=1000 drop=0 speed=0.95x
    frame=52544 fps= 29 q=-1.0 Lsize= 1050136kB time=00:29:11.36 bitrate=4912.0kbits/s dup=8757 drop=0 speed=0.972x
    video:1049508kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.059803%
    [libx264 @ 0000019639944040] frame I:261   Avg QP:20.59  size: 51862
    [libx264 @ 0000019639944040] frame P:15400 Avg QP:23.72  size: 33007
    [libx264 @ 0000019639944040] frame B:36883 Avg QP:24.55  size: 14989
    [libx264 @ 0000019639944040] consecutive B-frames:  0.9% 15.8%  2.5% 80.8%
    [libx264 @ 0000019639944040] mb I  I16..4: 17.1% 82.1%  0.8%
    [libx264 @ 0000019639944040] mb P  I16..4:  4.3% 48.4%  0.2%  P16..4: 12.3%  7.5%  4.8%  0.0%  0.0%    skip:22.5%
    [libx264 @ 0000019639944040] mb B  I16..4:  2.7% 15.6%  0.0%  B16..8: 22.3%  7.0%  1.8%  direct: 3.8%  skip:46.8%  L0:52.3% L1:34.0% BI:13.8%
    [libx264 @ 0000019639944040] 8x8 transform intra:88.6% inter:92.9%
    [libx264 @ 0000019639944040] coded y,uvDC,uvAC intra: 59.4% 33.6% 2.6% inter: 19.3% 10.9% 0.6%
    [libx264 @ 0000019639944040] i16 v,h,dc,p: 57% 30% 12%  1%
    [libx264 @ 0000019639944040] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 18% 45%  2%  1%  1%  2%  2%  3%
    [libx264 @ 0000019639944040] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 52% 24% 12%  2%  2%  2%  2%  2%  2%
    [libx264 @ 0000019639944040] i8c dc,h,v,p: 63% 17% 20%  1%
    [libx264 @ 0000019639944040] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0000019639944040] ref P L0: 43.8%  7.5% 29.1% 19.6%
    [libx264 @ 0000019639944040] ref B L0: 71.8% 21.2%  7.0%
    [libx264 @ 0000019639944040] ref B L1: 93.9%  6.1%
    [libx264 @ 0000019639944040] kb/s:4908.78
  • How can I bundle ffmpeg in an Electron application

    14 janvier 2024, par jshbrntt

    I'm building an Electron application starting from the electron-webpack boilerplate.

    



    I found this node module @ffmpeg-installer/ffmpeg which installs a compatible precompiled binary into the /node_modules directory then makes the path of that executable accessible through.

    



    const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path


    



    This works fine during development, but when I build the distributable and run it I get an error when attempting to spawn a child process with that path. Presumably, because the path does not point at the binary.

    



    The path is set to the following when running the distributable.

    



    /Users/me/project/dist/mac/AppName.app/Contents/Resources/app.asar/node_modules/@ffmpeg-installer/darwin-x64/ffmpeg


    



    However, when looking in the AppName.app package contents I find the binary in the following path.

    



    /Users/me/project/dist/mac/AppName.app/Contents/Resources/app.asar.unpacked/node_modules/@ffmpeg-installer/darwin-x64/ffmpeg


    



    How should I include binary dependencies in an Electron application using electron-webpack and electron-builder ?

    


  • Python - check subprocess activity every n seconds

    22 novembre 2017, par hlabor

    I’m trying to make python script (currently on windows) which will open some sub-processes (which will run infinitely) and script should periodically check do all of opened sub-processes still work correctly. So it should be done with while loop, I guess.

    The sub-processes are about FFMPEG livestreaming.

    The problem is when I do time.sleep(n) in my loop, because then every FFMPEG livestream stops, so I suppose time.sleep affect on all of child subprocesses.

    I have no idea how to make it work.

    Here is my python code :

    import os, time, sys, datetime, smtplib, configparser, logging, subprocess, psutil
    import subprocess

    def forwardudpstream(channel_number, ip_input, ip_output):
       try:
           ffmpeg_command = 'ffmpeg -i udp://' + ip_input + ' -vcodec copy -acodec copy -f mpegts "udp://' + ip_output + '?pkt_size=1316"'
           ffmpeg_output = subprocess.Popen(ffmpeg_command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False)
           return str(ffmpeg_output.pid)
       except:
           print ("Exception!")
           return '0'

    while True:
       configuration = 'config.ini'
       channel_list_file = 'CHANNEL_LIST.conf'
       pid_folder = "D:\\Forward_UDP_Stream\\pids\\"
       channel_list = [line.rstrip('\n') for line in open(channel_list_file)]
       for line in channel_list:
           if not line.startswith('#') and ('|' in line):
               channel_number, ip_input, ip_output = line.split('|')
               print('----------')
               print("Channel number = ", channel_number)
               print("IP Input = ", ip_input)
               print("IP Output = ", ip_output)
               pid_file_found = False
               print("Checking if pid file exists...")
               for pidfile in os.listdir(pid_folder):
                   if pidfile.startswith(channel_number + '-'):
                       print("Pid file is found for this channel.")
                       pid_file_found = True
                       pid = int(pidfile.split('-')[1].split('.')[0])
                       print("PID = ", str(pid))
                       print("Checking if corresponding process is active...")
                       if not psutil.pid_exists(pid):
                           print("Process is not active.")
                           print("Removing old pid file.")
                           os.remove(pid_folder + pidfile)
                           print("Starting a new process...")
                           pid_filename = channel_number + '-' + forwardudpstream(channel_number, ip_input, ip_output) + '.pid'
                           pid_file = open(pid_folder + pid_filename, "a")
                           pid_file.write("Process is running.")
                           pid_file.close()
                       else:
                           print("Process is active!")
                       break
               if pid_file_found == False:
                   print("Pid file is not found. Starting a new process and creating pid file...")
                   pid_filename = channel_number + '-' + forwardudpstream(channel_number, ip_input, ip_output) + '.pid'
                   pid_file = open(pid_folder + pid_filename, "a")
                   pid_file.write("Process is running.")
                   pid_file.close()
               time.sleep(10)

    Here is my CHANNEL_LIST.conf file example :

    1|239.1.1.1:10000|239.1.1.2:10000
    2|239.1.1.3:10000|239.1.1.4:10000

    Perhaps there is some other solution to put waiting and sub-processes to work together. Does anyone have an idea ?

    UPDATE :
    I finally make it work when I removed stdout=subprocess.PIPE part from the subprocess command.
    Now it looks like this :

    ffmpeg_output = subprocess.Popen(ffmpeg_command, stderr=subprocess.STDOUT, shell=False)

    So now I’m confused why previous command was making a problem...?
    Any explanation ?