
Recherche avancée
Médias (1)
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (65)
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
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. -
Contribute to a better visual interface
13 avril 2011MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.
Sur d’autres sites (7672)
-
Getting Error message Unknown encoder 'libx264' , any help appreciated
16 janvier 2022, par Alex.FosterI am trying to compress videos files to a target size within python using ffmpeg-python for an A level project as part of my coursework, I keep getting this error saying it doesn't know the encoder. Not sure what I'm meant to do as this is literally an entirely new space to me. Am I meant to have installed the codec or something, or is there an alternative I can use ?


import os, ffmpeg
##import section:this part is where I import all of the modules I will use
import tkinter
import shutil
from tkinter import filedialog
import os


def fileSelect(): #start of fileSelect function
 global startingLocation #declares startingLocation as global variable
 global originalName #declares originalName as global variable
 global fileType #declares fileType as global variable
 startingLocation = filedialog.askopenfilename(initialdir="/", title="Select file", #tkinter function that opens file explorer, lets user select file saves the file path as a variable
 filetypes=(("video files", "*.mp4"),("images", "*.jpg*")))
 originalName = os.path.basename(startingLocation) #os function that gets the actaul file name from the path string
 print (originalName) #print statement to check if originalName has been found
 fileType = startingLocation.split('.') #splits original name where any full stop in found and saves array as variable
 fileType = fileType[-1] #changes variable to have the str value of the final item in the array; the file type
 fileType = '.' + fileType #adds fullstop to the start of the file type so i dont have to repeatedly do it
 print (fileType) #print statement to check file type is found correctly

def outputSelect(): #start of outputSelect function
 global outputLocation #declares outputLocation as global variable
 outputLocation = filedialog.askdirectory(initialdir="/", title="Select folder") #tkinter function that opens file explorer, lets the user select of folder as saves the folder path as a variable

def fileNewName(): #start of fileNewName function
 global customName #declares customName as global variable
 customName = input("Enter the end name of your file") #simple code assigning user input to the custom name vairable
 customName = customName + fileType #add the fileType onto the end of the custom name

def compress(): #start of compress function
 fileSelect() #calls the fileSelect function
 outputSelect() #calls the outputSelect function
 fileNewName()
 global src
 global dst #calls the fileNewName function
 src = startingLocation #assigns startingLocation str as src, so the shutil module is able to use it in a cleaner way
 dst = outputLocation #assigns outputLocation dst as src, so the shutil module is able to use it in a cleaner way
 shutil.copy(src, dst) #shutil command that copies the file from src to dst
 src = outputLocation + '/' + originalName #reassigns src as the location of the file copy
 dst = outputLocation + '/' + customName #reassigns dst as the location of the file copy but with a new name
 shutil.move(src,dst)


def compress_video(video_full_path, output_file_name, target_size):
 # Reference: https://en.wikipedia.org/wiki/Bit_rate#Encoding_bit_rate
 min_audio_bitrate = 32000
 max_audio_bitrate = 256000

 probe = ffmpeg.probe(video_full_path)
 # Video duration, in s.
 duration = float(probe['format']['duration'])
 # Audio bitrate, in bps.
 audio_bitrate = float(next((s for s in probe['streams'] if s['codec_type'] == 'audio'), None)['bit_rate'])
 # Target total bitrate, in bps.
 target_total_bitrate = (target_size * 1024 * 8) / (1.073741824 * duration)

 # Target audio bitrate, in bps
 if 10 * audio_bitrate > target_total_bitrate:
 audio_bitrate = target_total_bitrate / 10
 if audio_bitrate < min_audio_bitrate < target_total_bitrate:
 audio_bitrate = min_audio_bitrate
 elif audio_bitrate > max_audio_bitrate:
 audio_bitrate = max_audio_bitrate
 # Target video bitrate, in bps.
 video_bitrate = target_total_bitrate - audio_bitrate

 i = ffmpeg.input(video_full_path)
 ffmpeg.output(i, os.devnull,
 **{'c:v': 'libx264', 'b:v': video_bitrate, 'pass': 1, 'f': 'mp4'}
 ).overwrite_output().run()
 ffmpeg.output(i, output_file_name,
 **{'c:v': 'libx264', 'b:v': video_bitrate, 'pass': 2, 'c:a': 'aac', 'b:a': audio_bitrate}
 ).overwrite_output().run()

compress()
compress_video(dst, outputLocation, 3 * 1000)



-
Revision 33311 : suite de la rationalisation : on renomme les fonctions de construction ...
27 novembre 2009, par cedric@… — Logsuite de la rationalisation : on renomme les fonctions de construction email article et forum on introduit une fonction de nettoyage d’un tableau d’email avant envoi on introduit un pipeline notifications_destinataires qui permet d’enrichir une liste de destinataires d’un envoi sans forker (...)
-
Realtime video conversion using nodejs and ffmpeg
2 février 2015, par LadislavMI’m trying to create very simple server-side video conversion using ffmpeg and nodejs.
So far, I have 2 UDP servers, one for converting video input and second one for listening for converted video and passing it to websocket.I’ve created one UDP server, where stream comes, converts the video input by calling ffmpeg. Then the second UDP server get the converted video and pass it to the websocket server to stream video to browser.
The problem is probably with input into the ffmpeg. The error I get is
_stream_readable.js:476
dest.on('unpipe', onunpipe);
^
TypeError: ObjectThe code looks like this :
// Websocket Server
var socketServer = new (require('ws').Server)({port: 8081});
socketServer.on('connection', function(socket) {
socket.on('close', function(code, message){
console.log( 'Disconnected WebSocket ('+socketServer.clients.length+' total)' );
});
});
socketServer.broadcast = function(data, opts) {
for( var i in this.clients ) {
this.clients[i].send(data, opts);
}
};
// UDP Server
var udpServer = require("dgram").createSocket("udp4");
udpServer.on("message", function(msg, rinfo) {
socketServer.broadcast(msg, {binary:true});
console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port);
});
udpServer.on("listening", function() {
var address = udpServer.address();
console.log("server listening " + address.address + ":" + address.port);
});
udpServer.bind(8082);
// UDP Server for stream conversion
var udpServer2 = require("dgram").createSocket("udp4");
udpServer2.on("message", function(msg, rinfo) {
// ********** THIS IS WHERE ERROR OCCURS **************
var ffmpeg = require('child_process')
.spawn('ffmpeg',['-f','video4linux2','-i','-','-f','mpeg1video','udp://127.0.0.1:8082']);
ffmpeg.stdin.pipe(msg);
});
udpServer2.on("listening", function() {
var address = udpServer2.address();
console.log("server listening " + address.address + ":" + address.port);
});
udpServer2.bind(8083);