
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (8)
-
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...) -
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...)
Sur d’autres sites (2841)
-
Tiny node js video convert server, best way to manage the threads
23 juin 2017, par efirvidaI am developing a small server to convert videos for the web, I started with a TCP server (maybe it is not the best solution, but it is not the part of my problem right now) to which I send the path of videos to convert and then Add to a queue in a database system, in this case mysql, but I’m thinking of migrating to MongoDB when it works
var net = require('net'),
Sequelize = require('sequelize'),
async = require('async'),
JsonSocket = require('json-socket'),
ffmpeg = require('fluent-ffmpeg');
var configDB = require('./config/database.js');
var sequelize = new Sequelize(configDB.url);
var Videos = sequelize.import('app/models/video');
Videos.sync();
var port = 9838;
var server = net.createServer();
server.listen(port);
server.on('connection', function(socket) {
socket = new JsonSocket(socket);
socket.on('message', function(video) {
console.log(video.video);
db_data = {
'name': video.video,
'converted': false,
'progress': 0,
'status': 'Q',
}
Videos.create(db_data).then(function () {
socket.sendMessage('New Video Added');
}).catch(function () {
console.log('Error adding Video');
socket.sendMessage('Error adding video')
});
});
});Once I have a list of videos on the database the process begin with this code :
// Function to update the video status on the database
var databaseUpdate = function(status, callback) {
name = status.name;
delete status["name"];
Videos.update(status, {
where: {
name: name
}
}).then(function (video) {
if (typeof callback === 'function' && callback) callback();
});
}
//convert the video:
// If the video status are:
// - 'Q' for in queue
// - 'R' for running conversion
// - 'C' for complete
// - 'E' for error on the conversion proccess
function ffmpegConvert(video, output, callback)
{
var filename = video.split('/').reverse()[0].split('.')[0],
output = output + filename + '.mp4';
ffmpeg(video)
.videoCodec('libx264')
.audioCodec('libmp3lame')
.on('error', function(err) {
db_data = {
'name': video,
'status': 'E', //<- set status if error ocurre
}
databaseUpdate(db_data)
console.log('An error occurred: ' + err.message);
})
.on('end', function(stdout, stderr) {
db_data = {
'name': video,
'converted': true, //<- set status complete conversion
'status': 'C', //<- set status complete conversion
}
databaseUpdate(db_data, function(){convertVideos(1)}) // <- put a next video in the queue to convert
})
.on('progress', function(progress) {
db_data = {
'name': video,
'status': 'R', //<- set status ass running conversion
'progress': progress.percent, //<- set the video processes %
}
databaseUpdate(db_data)
})
.save(output);
}
// get videos not converted `converted: false` and with
// queque status `status: 'Q'` from the database
// the send to the ffmpegConvert function in a num of async task
var convertVideos = function(num){
Videos.findAll(
{
where: {
converted: false,
status: 'Q'
},
limit : num,
order: '"createdAt" DESC'
}
).then(function (videos) {
if (videos && videos.length){
async.each(videos,
function(item){
ffmpegConvert(item.name, output_folder )
},
function(err){
});
}
});
}
// Start vidieo conversion with threads number equal to number of cpu
threads = require('os').cpus().length,
convertVideos(threads);So at this point All works great, and all the videos on the queue are converted, but my questions are :
1 - How to put new videos to convert if they are added to the database after the first run on the server ?
I can’t put it to run the
socket.on('message', function(video) {}
because if I send a new video when the queue is not completed this going to start a new separated thread. I also think that I have to find a way to monitor the async task to see how many task are running before send new one2 - How to manage uncompleted videos if server goes down ?
If I turn off the server for some reason, the status of the current video in the database stay in ’R’ so the query to add it to the conversion prosses didn not see it, and left it corrupted.
-
How to Save and Display a Video Simultaneously using C# Aforge.NET framework ?
8 avril 2014, par AkshayI am able to display the video from my webcam or any other integrated device into a picturebox . Also i am able to Save the video into an avi file using FFMPEG DLL files.
I want to do both things simultaneously ie Save the video in the avi file as well as at the same time display the live feed too.
This is for a surveillance project where i want to monitor the live feed and save those too.using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using AForge.Video;
using AForge.Video.DirectShow;
using AForge.Video.FFMPEG;
using AForge.Video.VFW;
using System.Drawing.Imaging;
using System.IO;
namespace cam_aforge1
{
public partial class Form1 : Form
{
private bool DeviceExist = false;
private FilterInfoCollection videoDevices;
private VideoCaptureDevice videoSource = null;
public Form1()
{
InitializeComponent();
}
private void getCamList()
{
try
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
comboBox1.Items.Clear();
if (videoDevices.Count == 0)
throw new ApplicationException();
DeviceExist = true;
foreach (FilterInfo device in videoDevices)
{
comboBox1.Items.Add(device.Name);
}
comboBox1.SelectedIndex = 0; //make dafault to first cam
}
catch (ApplicationException)
{
DeviceExist = false;
comboBox1.Items.Add("No capture device on your system");
}
}
private void rfsh_Click(object sender, EventArgs e)
{
getCamList();
}
private void start_Click(object sender, EventArgs e)
{
if (start.Text == "&Start")
{
if (DeviceExist)
{
videoSource = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString);
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrameSave);
CloseVideoSource();
videoSource.DesiredFrameSize = new Size(160, 120);
//videoSource.DesiredFrameRate = 10;
videoSource.Start();
label2.Text = "Device running...";
start.Text = "&Stop";
timer1.Enabled = true;
}
else
{
label2.Text = "Error: No Device selected.";
}
}
else
{
if (videoSource.IsRunning)
{
timer1.Enabled = false;
CloseVideoSource();
label2.Text = "Device stopped.";
start.Text = "&Start";
}
}
}
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap img = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = img;
}
Bitmap imgsave;
private void video_NewFrameSave(object sender, NewFrameEventArgs eventArgs)
{
imgsave = (Bitmap)eventArgs.Frame.Clone();
}
private void CloseVideoSource()
{
if (!(videoSource == null))
if (videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource = null;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = "Device running... " + videoSource.FramesReceived.ToString() + " FPS";
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
CloseVideoSource();
}
private void Form1_Load(object sender, EventArgs e)
{
}
VideoFileWriter writer;
private void button1_Click(object sender, EventArgs e)
{
int width = 640;
int height = 480;
writer = new VideoFileWriter();
writer.Open("test.avi", width, height, 75, VideoCodec.MPEG4);
for (int i = 0; i < 5000; i++)
{
writer.WriteVideoFrame(imgsave);
}
}
private void button2_Click(object sender, EventArgs e)
{
writer.Close();
}
}
}Thanks in advance.
-
Compile vlc-android on macos Sierra, many errors
12 février 2017, par appworksThis is the error message capture,Under MAC mini(macOS Sierra 10.12.3) :
I’m trying to compile VLC-android player using MAC mini, the error message is below :{standard input}: Assembler messages:
{standard input}:146: Error: unknown register alias 'GP'
clang38: error: assembler command failed with exit code 1 (use -v to see invocation)
make[1]: *** [libavcodec/arm/ac3dsp_armv6.o] Error 1
make[1]: *** Waiting for unfinished jobs....
{standard input}: Assembler messages:
{standard input}:446: Error: unknown register alias 'POUT'
{standard input}:448: Error: unknown register alias 'PIN'
{standard input}:450: Error: unknown register alias 'PCOEF'
{standard input}:452: Error: unknown register alias 'OLDFPSCR'What am I doing wrong ?