Recherche avancée

Médias (1)

Mot : - Tags -/berlin

Autres articles (104)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

Sur d’autres sites (16016)

  • 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


    


  • Problem importing whatsapp-web.js nodejs module in electron react app

    26 mai 2021, par Sunil Shah

    I am trying to build an electron react app. I need to integrate this node modules https://www.npmjs.com/package/whatsapp-web.js in my electron react app. My main.js of electron looks like this :

    


    

    

    // Modules to control application life and create native browser window
const { app, BrowserWindow } = require("electron");
const path = require("path");

function createWindow() {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      webSecurity: false,
    },
  });

  // and load the index.html of the app.
  mainWindow.loadURL("your ip address:3000");

  // Open the DevTools.
  // mainWindow.webContents.openDevTools()
}

app.whenReady().then(() => {
  createWindow();

  app.on("activate", function () {
    // On macOS it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on("window-all-closed", function () {
  if (process.platform !== "darwin") app.quit();
});

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.

    


    


    



    And the React code where i want to import whatsapp-web.js module looks like

    


    

    

    import React from "react";&#xA;import styled from "styled-components";&#xA;const qrcode = require(&#x27;qrcode-terminal&#x27;);&#xA;const Client = require(&#x27;whatsapp-web.js&#x27;);&#xA;function Error() {&#xA;  var client = new Client();&#xA;  client.initialize();&#xA;  console.log(client);&#xA;  console.log(qrcode);&#xA;  return (&#xA;    <container>&#xA;      <errorimage src="https://cdn4.iconfinder.com/data/icons/smiley-vol-3-2/48/134-512.png"></errorimage>&#xA;      <errormessage>Oops, you are not connected to any number.</errormessage>&#xA;    </container>&#xA;  );&#xA;}&#xA;&#xA;export default Error;&#xA;&#xA;const Container = styled.div`&#xA;  display: flex;&#xA;  height: 100vh;&#xA;  width: 100%;&#xA;  padding-top: 20vh;&#xA;  position: center;&#xA;  /* align-items: center; */&#xA;  justify-content: center;&#xA;`;&#xA;&#xA;const ErrorImage = styled.img`&#xA;  background-color: transparent;&#xA;  background-repeat: no-repeat;&#xA;  background-size: cover;&#xA;  object-fit: contain;&#xA;&#xA;  width: 25%;&#xA;  height: 25%;&#xA;&#xA;  /* border: 2px solid black; */&#xA;`;&#xA;&#xA;const ErrorMessage = styled.div`&#xA;  margin: 10px;&#xA;  width: 50%;&#xA;  height: 25%;&#xA;  /* top: 20px; */&#xA;  font-size: 30px;&#xA;  align-items: center;&#xA;  font-family: "Lucida Console", "Courier New", monospace;&#xA;  /* font-weight: bold; */&#xA;`;

    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;&#xA;

    Now everytime I try to import const Client = require('whatsapp-web.js') It throws error like this :&#xA;**&#xA;[0] ./node_modules/fluent-ffmpeg/index.js&#xA;[0] Module not found : Can't resolve './lib-cov/fluent-ffmpeg' in 'D :\Sunil\Zarir_app-main\Zarir_app-main\node_modules\fluent-ffmpeg'&#xA;[0] Compiling...&#xA;[0] Failed to compile.

    &#xA;

    and I tried the solution&#xA;https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/issues/573#issuecomment-305408048&#xA;and other resources but still nothing works and just loops in errors and errors.&#xA;Please help if you have any information related to it.&#xA;Thank you.

    &#xA;

  • How to convert cctv footage to h265 for streaming and recording in nginx-rtmp module ?

    6 avril 2021, par Joram

    I am using the nginx-rtmp-module here to pull an rtsp stream from a camera on local network and convert it to rtmp. This rtmp stream is then converted to hls and made available for livestreaming. It is also being recorded in 5 min segments. (these things can all be seen in the nginx.conf below).

    &#xA;

    I want to change the video codec to h265 to save storage space, since each 5 min video is ~230mb, and using opencv and python, I was able to get &lt;100mb per 5 min video using h265, so I know there is a lot of space for storage saving.

    &#xA;

    How can I change the codec of the stream to h265 ?

    &#xA;

    I have tried installing libx265-dev and setting -vcodec libx265, however this tells me flv is an invalid container and I'm getting nowhere with finding a valid container for streaming + recording.

    &#xA;

    My nginx.conf :

    &#xA;

    rtmp {&#xA;    server {&#xA;        listen 1935; # Listen on standard RTMP port&#xA;&#xA;        application relay {&#xA;            &#xA;            live on;&#xA;&#xA;            hls on;&#xA;            hls_path /tmp/hls;&#xA;            hls_fragment 15s;&#xA;&#xA;&#xA;            exec_static /usr/bin/ffmpeg -i rtsp://test:test@192.168.100.10:8554/fhd -vcodec copy -f flv rtmp://localhost:1935/relay/fhd; &#xA;&#xA;            # record block  &#xA;            record video;&#xA;            record_path /tmp/hls;&#xA;            record_unique on;&#xA;            record_interval 5m;&#xA;        }&#xA;    }&#xA;}&#xA;

    &#xA;