
Recherche avancée
Médias (91)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
avec chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
sans chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
config chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (97)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 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, parMultilang 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, parLe 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 2020Mais 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 :pOn 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 VamsiI 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 RaptorI am new to macOS development via SwiftUI. I’m trying to run a FFMPEG process after I selected a MP4 file via
NSOpenPanel
. However, theFFMPEG
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 !