Recherche avancée

Médias (0)

Mot : - Tags -/performance

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

Autres articles (64)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (6581)

  • sent file using axios using passthrough stream module in nodejs

    12 août 2022, par Harikrushna Patel

    Imports

    


    const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const FfmpegCommand = require('fluent-ffmpeg');
const fs = require('fs');
const path = require('path');
const streamNode = require('stream');
const FormData = require('form-data');
const axios = require('axios').default;


    


    Code here

    


    async function audios() {
  let stream = fs.createReadStream(path.join(__dirname, '../videos/video.mp4'));
  let writeStream = fs.createWriteStream(path.join(__dirname, '../response/audios/' + +new Date() + '.wav'));
  let pass = new streamNode.PassThrough();
  let outputFile = path.join(__dirname, '../response/audios/' + +new Date() + '.wav');
  const ffmpeg = FfmpegCommand(file);

  ffmpeg
    .setFfmpegPath(ffmpegPath)
    .format('mp4')
    .toFormat('wav')
    .on('end', function () {
      console.log('file has been converted successfully');
    })
    .on('error', function (err, stdout, stderr) {
      console.log('an error happened: ' + err.message);
      console.log('ffmpeg stdout: ' + stdout);
      console.log('ffmpeg stderr: ' + stderr);
    })
    .on('end', function() {
      console.log('Processing finished !');
    })
    .stream(pass, { end: false })
    var bodyFormData = new FormData();
    bodyFormData.append('file', pass);
    let headers = bodyFormData.getHeaders(); 

    try {
      const jdata = await axios.post('http://localhost:4080/video',bodyFormData, {    maxContentLength: Infinity,
      maxBodyLength: Infinity,validateStatus: (status) => true ,headers:headers });
      console.log(jdata.data);
    } catch (error) {
      console.log("error" ,error.message);
    }

}


    


    I am getting errors to sent passthrough stream through formdata ;
issue is ffmpeg not creating readstrem so I am created passthrough from it and passed in formdata but not working right now

    


  • How to receive byte-stream by using gstreamer with python subprocess module or gst-launch-1.0 command ?

    21 avril 2022, par yuniversi

    I want to receive byte-stream by using gstreamer with python subprocess module.
Now I can successfully use ffmpeg to pull the byte-stream. As shown below.

    


    import cv2
import subprocess as sp


height = 714
width = 420
rtsp_url = 'rtsp://127.0.0.1:8554/video'

# command
command = ['ffmpeg',
            '-i', rtsp_url,
            '-f', 'rawvideo',
            '-s',str(width)+'*'+str(height),
            '-pix_fmt', 'bgr24',
            '-fflags', 'nobuffer',
            '-']

p = sp.Popen(command, stdout=sp.PIPE, bufsize=10**8)

while True:
    raw_image = p.stdout.read(width*height*3)
    image =  np.fromstring(raw_image, dtype='uint8')
    image = image.reshape((height,width,3)).copy()
    cv2.imshow('image', image)
    key = cv2.waitKey(20)


    


    I want to use gstreamer command instead of ffmpeg. So far, I have realized writing byte-stream to a file by using gstreamer command line.

    


    gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/video latency=0 drop-on-latency=true ! rtph264depay ! video/x-h264, stream-format='byte-stream' ! filesink location=/home/name/stdout


    


    But it can't output byte-stream to pipe, so the terminal dosen't display byte-stream, not like ffmpeg command. How to change this command to output byte-stream through pipe so I can read from pipe.
Thank you for taking the time to answer for me !

    


    This is RTSP streaming code.

    


    import cv2
import time
import subprocess as sp
import numpy as np


rtsp_url = 'rtsp://127.0.0.1:8554/video'
video_path = r'test.mp4'
cap = cv2.VideoCapture(video_path)

# Get video information
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print('fps={}'.format(fps))

# command
command = ['ffmpeg',
            '-re',
            '-y',
            '-stream_loop', '-1',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-pix_fmt', 'bgr24',
            '-s', "{}x{}".format(width, height),
            '-r', str(fps),
            '-i', '-',
            '-c:v', 'libx264',
            '-pix_fmt', 'yuv420p',
            '-preset', 'ultrafast',
            # '-flags2', 'local_header',
            '-bsf:v', "'dump_extra=freq=k'", 
            '-keyint_min', '60',
            '-g', '60',
            '-sc_threshold', '0', 
            '-f', 'rtsp',
            '-rtsp_transport', 'tcp',
            '-muxdelay', '0.1', 
            rtsp_url]

p = sp.Popen(command, stdin=sp.PIPE)

cnt = 0
t_start = time.time()
while (cap.isOpened()):
    t_cur = time.time()-t_start

    ret, frame = cap.read()
    if not ret:
        cnt += 1
        print("count: {}".format(cnt))
        cap = cv2.VideoCapture(video_path)
        continue

    p.stdin.write(frame.tobytes())

    cv2.imshow('real_time', frame)

    key = cv2.waitKey(20)
    if key == 27:
        p.terminate()
        break


    


  • Shutil not detecting ffmpeg module and python3 incorrectly, all when compiled with pyinstaller

    9 juin 2021, par vanilla

    Right now I am almost finished with my version of my app. The last thing I am having trouble with is detecting the FFmpeg module, to warn users that they need it for certain features that have been added this version. When I run the script through my python interpreter in terminal, which the directories of it is in my library frameworks directory, The shutil will run as expected and return the version or whatever as I do have it installed. However, when I compile it and launch specifically the one windowed, with no console output, it doesn’t work. Now what I mean by that it returns none type.

    


    From talking to someone in my previous Reddit thread I tried printing out python3 and seeing what directories that would bring with shutil.which(‘python3’). Interesting enough, when put into my tkinter text field (don't have a console) it would bring up my python binary from the directory /usr/bin/python3. The one I have all my modules for it and everything installed on is the one :

    


    >>> import shutil
>>> print(shutil.which('python3'))
/Library/Frameworks/Python.framework/Versions/3.9/bin/python3


    


    So we can see that there are to installations or whatever of python3 interpreters (I believe I am saying this right), and I am confused on maybe I am being hinted to use the python3 binary from /usr/bin/ to compile it with pyinstaller and install the needed modules with /usr/bin/pip3 with it ?

    


    A user from the reddit thread I made below made a alternative :

    


    


    I tested it on my computer after fixing a bug, and both the shutil and os methods work. It seems to be a problem on your end, which is strange. What version of Python do you have ? Also in your script right above testing for ffmpeg, try inserting this line :
print('ffmpeg' in os.listdir('/usr/local/bin'))

    


    


    This other method with os unfortunately returned a None as well. I am ultimately trying to have some kind of method to reliably detect ffmpegs's binary on all operating systems. If anyone can provide some insight as to what may cause problems similar to these or knows other solutions, or can identify some kind of hiccup I can avoid that would be amazing.

    


    I have a hunch since shutil when compiled returned the bin directory for python3 instead of the framework one that actually has all the modules installed, that could mean something to me to try using pyinstaller with that one instead ?

    


    Thanks !

    


    https://www.reddit.com/r/learnpython/comments/nu3a1d/functionallity_supposedly_of_shutilwhichffmpeg/