Recherche avancée

Médias (91)

Autres articles (97)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

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

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (6679)

  • Anomalie #4562 : Suite #4468 : Unification des CSS pour les boutons et les icônes

    6 octobre 2020

    Mais pour l’ajout là c’est bizarre on voit pas le fond, c’est un peu nul, en tout cas pour cette couleur.

    Oui : https://core.spip.net/issues/4562#note-25 et https://core.spip.net/issues/4562#note-5

    Peut-être l’inverse aussi, le retrait est plus gros que l’ajout : ça ne va pas.

    Oui c’est pas voulu, la capture a été faite à l’arrache dans l’inspecteur, devait rester un font-size planqué quelque part (il y en a pleins d’imbriqués en vrac de partout). Les 2 étaient censés être à la même taille.

    Mais bref, pour mettre le bouton d’ajout à la taille normale il y a pas trop la place pour l’instant : les .toggle_box_link sont positionnés en absolute, ça ferait déborder. Et s’il faut faire rentrer tout ça je sens que ça va amener modifier pleins de choses en cascade. On tire sur un fil et on finit par dérouler toute la pelote de laine :p

    On peut y aller par étapes aussi : laisser tout en .mini.link dans un 1er temps ça me semble acceptable, histoire de garder un truc proche de ce qu’il y avait avant, mais déjà un peu plus harmonisé. Et pis après on amélioera.

  • Python opencv subprocess write return broken pipe

    16 septembre 2021, par Vamsi

    I want to read an rtsp video source, add overlay text and push it to the RTMP endpoint.I am using Videocapture to read the video source and python subprocess to write the frames back to RTMP endpoint. I referred this FFmpeg stream video to rtmp from frames OpenCV python

    


    import sys
import subprocess

import cv2
import ffmpeg
rtmp_url = "rtmp://127.0.0.1:1935/live/test"

path = 0
cap = cv2.VideoCapture("rtsp://10.0.1.7/media.sdp")

# gather video info to ffmpeg
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))



command = ['ffmpeg', '-i', '-', "-c", "copy", '-f', 'flv', rtmp_url]
p = subprocess.Popen(command, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE)

font = cv2.FONT_HERSHEY_SIMPLEX
while cap.isOpened():

    ret, frame = cap.read()
    cv2.putText(frame, 'TEXT ON VIDEO', (50, 50), font, 1, (0, 255, 255), 2, cv2.LINE_4)
    cv2.imshow('video', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

    if not ret:
        print("frame read failed")
        break

    try:
        p.stdin.write(frame.tobytes())
    except Exception as e:
        print (e)


cap.release()
p.stdin.close()
p.stderr.close()
p.wait()


    


    The python script returns "[Errno 32] Broken pipe". Running the ffmpeg command in the terminal works fine.

    


    


    ffmpeg -i rtsp ://10.0.1.7/media.sdp -c copy -f flv
rtmp ://127.0.0.1:1935/live/test

    


    


    The above command works fine, and I can push the input stream to RTMP endpoint. But I can't write processed frame to subprocess which has ffmpeg running.

    


    Please let me know, if I miss anything.

    


  • Unable to access user selected file via NSOpenPanel in FFMPEG process in macOS app

    12 décembre 2019, par Raptor

    I am new to macOS development via SwiftUI. I’m trying to run a FFMPEG process after I selected a MP4 file via NSOpenPanel. However, the FFMPEG responded with :

    file :///Users/MyUsername/Documents/Video.mp4 : No such file or directory

    Here is my simple codes :

    import SwiftUI

    struct ContentView: View {

       @State var selectedURL: URL?

       var body: some View {
           VStack {
               if selectedURL != nil {
                   Text("Selected: \(selectedURL!.absoluteString)")
               } else {
                   Text("Nothing selected")
               }
               Button(action: {
                   let panel = NSOpenPanel()
                   panel.allowedFileTypes = ["mp4"]
                   panel.canChooseDirectories = false
                   panel.canCreateDirectories = false
                   panel.allowsMultipleSelection = false
                   let result = panel.runModal()
                   if result == .OK {
                       self.selectedURL = panel.url

                       let savePath = self.getDownloadDirectory().appendingPathComponent("video.webm")

                       self.convertVideo(inputFilePath: self.selectedURL!.absoluteString, outputFilePath: savePath.absoluteString, callback: {(s) in
                           // omit the callback at this moment
                       })
                   }
               }) {
                   Text("Select File")
               }
           }
           .frame(width: 640, height: 480)
       }

       func getDownloadDirectory() -> URL {
           let paths = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask)
           return paths[0]
       }

       func convertVideo(inputFilePath: String, outputFilePath: String,
                        callback: @escaping (Bool) -> Void) -> (Process, DispatchWorkItem)? {
           guard let launchPath = Bundle.main.path(forResource: "ffmpeg", ofType: "") else {
               return nil
           }
           let process = Process()
           let task = DispatchWorkItem {
               process.launchPath = launchPath
               process.arguments = [
                   "-y",
                   "-i", inputFilePath,
                   "-vcodec", "vp8",
                   "-acodec", "libvorbis",
                   "-pix_fmt", "yuva420p",
                   "-metadata:s:v:0",
                   "alpha_mode=\"1\"",
                   "-auto-alt-ref", "0",
                   outputFilePath
               ]
               process.standardInput = FileHandle.nullDevice
               process.launch()
               process.terminationHandler = { process in
                   callback(process.terminationStatus == 0)
               }
           }
           DispatchQueue.global(qos: .userInitiated).async(execute: task)

           return (process, task)
       }
    }

    What did I miss to allow FFMPEG process to access my selected file ? Thanks !