
Recherche avancée
Autres articles (57)
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;
Sur d’autres sites (10383)
-
ffmpeg stream videos from two cams have a same device name
21 novembre 2020, par junsangThere are two cameras have a same device name Microsoft® LifeCam Studio(TM).

ffmpeg -list_deivces true -f dshow -i dummy
prints the below output.


C:\Users\user>ffmpeg -list_devices true -f dshow -i dummy
ffmpeg version git-2020-02-05-e6891d1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9.2.1 (GCC) 20200122
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 39.100 / 56. 39.100
 libavcodec 58. 67.101 / 58. 67.101
 libavformat 58. 37.100 / 58. 37.100
 libavdevice 58. 9.103 / 58. 9.103
 libavfilter 7. 74.100 / 7. 74.100
 libswscale 5. 6.100 / 5. 6.100
 libswresample 3. 6.100 / 3. 6.100
 libpostproc 55. 6.100 / 55. 6.100
[dshow @ 000001d5c5108dc0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000001d5c5108dc0] "Microsoft® LifeCam Studio(TM)"
[dshow @ 000001d5c5108dc0] Alternative name "@device_pnp_\\?\usb#vid_045e&pid_0811&mi_00#8&6ae46e6&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 000001d5c5108dc0] "Microsoft® LifeCam Studio(TM)"
[dshow @ 000001d5c5108dc0] Alternative name "@device_pnp_\\?\usb#vid_045e&pid_0811&mi_00#8&e544916&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 000001d5c5108dc0] DirectShow audio devices
[dshow @ 000001d5c5108dc0] "Desktop Microphone (6- Microsoft® LifeCam Studio(TM))"
[dshow @ 000001d5c5108dc0] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{D5F4881A-6E88-4563-8BA0-081CFD50E353}"
[dshow @ 000001d5c5108dc0] "Desktop Microphone (5- Microsoft® LifeCam Studio(TM))"
[dshow @ 000001d5c5108dc0] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{84674B28-DC68-4AC0-8331-D687C7B7D69C}"
[dshow @ 000001d5c5108dc0] "Digital Audio (S/PDIF) (High Definition Audio Device)"
[dshow @ 000001d5c5108dc0] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{CDD24485-59D2-4BED-B6FC-B7447251C7E2}"




Because the two cameras have a same device name, I couldn't stream two videos using this simple command at a same time :
ffplay -f dshow -i video=Microsoft® LifeCam Studio(TM)
.

So I used pin names following the ffmpeg dshow example.
The only thing I could check wasCould not find video device with name [video=~~pin name~~] among source devices of type video.



What
ffplay
command makes enable to stream both videos ?

-
Google App Engine - Access file after uploaded to bucket
28 mai 2021, par jessiPPI have uploaded a file using my google app engine backend to my storage bucket but now I cannot access the file to pass in into ffmpeg. I am getting this error message from the try-catch : "The input file does not exist". I can see that the file was uploaded because I checked my developer console under the storage bucket. I am using the boilerplate code provided by google but added the ffmpeg for testing. I am trying to access the path to the uploaded file using, but it is incorrect, though I am getting the bucket.name value and the blob.name value. I am using the "flex" environment for this.


const originalFilePath = `gs://${bucket.name}/${blob.name}`; 



here is the full code :


const process = require('process'); // Required to mock environment variables
const express = require('express');
const helpers = require('./helpers/index');
const Multer = require('multer');
const bodyParser = require('body-parser');
const ffmpeg = require("ffmpeg"); //https://www.npmjs.com/package/ffmpeg
const {Storage} = require('@google-cloud/storage');

// Instantiate a storage client
const storage = new Storage();

const app = express();
app.set('view engine', 'pug');
app.use(bodyParser.json());

// Multer is required to process file uploads and make them available via
// req.files.
const multer = Multer({
storage: Multer.memoryStorage(),
 limits: {
 fileSize: 5 * 1024 * 1024, // no larger than 5mb, you can change as needed.
 },
});

// A bucket is a container for objects (files).
const bucket = storage.bucket(process.env.GCLOUD_STORAGE_BUCKET);

// Display a form for uploading files.
app.get('/', (req, res) => {
 res.render('form.pug');
});

// Process the file upload and upload to Google Cloud Storage.
app.post('/upload', multer.single('file'), (req, res, next) => {

if (!req.file) {
 res.status(400).send('No file uploaded.');
 return;
}

// Create a new blob in the bucket and upload the file data.
const blob = bucket.file(req.file.originalname);
const blobStream = blob.createWriteStream({
 resumable: false,
});

blobStream.on('error', err => {
 next(err);
});

blobStream.on('finish', () => {

const audioFile = helpers.replaceAllExceptNumbersAndLetters(new Date());

// this path is incorrect but I cannot find correct way to do it
const originalFilePath = `gs://${bucket.name}/${blob.name}`; 

const filePathOutput = `gs://${bucket.name}/${audioFile}.mp3`;

try {
 const process = new ffmpeg(originalFilePath);
 process.then(function (video) {
 // Callback mode
 video.fnExtractSoundToMP3(filePathOutput, (error, file) => {
 if (!error)
 res.send(`audio file: ${file}`);
 });
}, (error) => {
 res.send(`process error: ${error}`);

});
} catch (e) {
 res.send(`try catch error: ${JSON.stringify(e)} | bucket: ${JSON.stringify(bucket)} | 
 blob: : ${JSON.stringify(blob)}`);
} 


});

blobStream.end(req.file.buffer);

});

const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
 console.log(`App listening on port ${PORT}`);
 console.log('Press Ctrl+C to quit.');
});


module.exports = app;



-
Ffmpeg stream stops after a couple of seconds
28 juin 2019, par Connor WoodfordI have an http stream of an mkv file that I am trying to transcode to mp4 via ffmpeg. Here is the command I enter to start the stream
ffmpeg -i "input.mkv" -f mpeg1video -vf "scale=640:480" -r 20 "http://localhost:port"
. The stream starts fine. Here is what the stream gives me at first :Metadata:
title : Chapter 17
Stream #0:0(eng): Video: mpeg1video, yuv420p, 640x480 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 24 fps, 24 tbn, 24 tbc
Metadata:
BPS-eng : 31632108
DURATION-eng : 02:03:42.289875000
NUMBER_OF_FRAMES-eng: 177957
NUMBER_OF_BYTES-eng: 29347831113
SOURCE_ID-eng : 001011
_STATISTICS_WRITING_APP-eng: MakeMKV v1.14.2 win(x64-release)
_STATISTICS_WRITING_DATE_UTC-eng: 2019-06-18 22:53:22
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
encoder : Lavc58.31.102 mpeg1video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame= 111 fps=0.0 q=6.2 size= 212kB time=00:00:04.54 bitrate= 382.2kbits/s speed=8.82xbut after this shows up it hangs for a while then it gives me this :
av_interleaved_write_frame(): Unknown errorime=00:00:05.24 bitrate= 788.3kbits/s speed=10.5x
Error writing trailer of http://192.168.1.19:4012: Error number -10054 occurred
frame= 128 fps=1.1 q=12.1 Lsize= 646kB time=00:00:05.84 bitrate= 905.0kbits/s speed=0.0487x
video:343kB audio:274kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.639489%
[http @ 000001cb1fdac780] URL read error: -10054
Conversion failed!Here is my http server in node.js :
const express = require('express')
const port = port
var ffmpeg = require('ffmpeg');
var http = require('http')
var server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'video/mp4'});
})
server.listen(port, 'ipAddress')
console.log(`Example app on port ${port}!`);