Recherche avancée

Médias (91)

Autres articles (107)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains 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 ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (13435)

  • Google App Engine - Access file after uploaded to bucket

    28 mai 2021, par jessiPP

    I 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;


    


  • Google - Shaka | Deleting SegmentTimeline in manifest.mpd after restart container

    27 juin 2022, par burakkiymaz

    Shaka is running inside docker container. When I restarted container, SegmentTimeline part in manifest.mpd file deleting. Is possible appending old SegmentTimeline to new manifest.mpd file or recover it when I restarted ?

    


    Operating System :

    


    NAME="CentOS Linux"
VERSION="7 (Core)"


    


    Shaka Packager Version :

    


    google/shaka-packager:v2.5.1


    


    You can find out my configuration file below :

    


    CH_PATH=/some/path/$CH_NAME

/usr/bin/packager \
        'in=udp://127.0.0.1:'$PORT',stream=audio,init_segment='$CH_PATH'/audio_init.m4s,segment_template='$CH_PATH'/audio_$Time$.m4s' \
        'in=udp://127.0.0.1:'$PORT',stream=video,init_segment='$CH_PATH'/h264_360p_init.m4s,segment_template='$CH_PATH'/h264_360p_$Time$.m4s' \
        'in=udp://127.0.0.1:'$(($PORT + 1))',stream=video,init_segment='$CH_PATH'/h264_540p_init.m4s,segment_template='$CH_PATH'/h264_540p_$Time$.m4s' \
        'in=udp://127.0.0.1:'$(($PORT + 2))',stream=video,init_segment='$CH_PATH'/h264_720p_init.m4s,segment_template='$CH_PATH'/h264_720p_$Time$.m4s' \
        'in=udp://127.0.0.1:'$(($PORT + 3))',stream=video,init_segment='$CH_PATH'/h264_1080p_init.m4s,segment_template='$CH_PATH'/h264_1080p_$Time$.m4s' \
        --enable_widevine_encryption \
        --key_server_url ************ \
        --content_id ********** \
        --signer ********** \
        --aes_signing_key ************ \
        --aes_signing_iv ************* \
        --mpd_output $CH_PATH/manifest.mpd \
        --hls_playlist_type LIVE \
        --hls_master_playlist_output $CH_PATH/mn.m3u8 \
        --time_shift_buffer_depth 43200 \
        --preserved_segments_outside_live_window 43200


    


  • Piping stdout from child process directly to google cloud storage. Node.js

    2 octobre 2018, par glenn

    anyone here with expertise on piping to google cloud storage ?

    i am using FFmpeg on a server, and want to pipe to my storage bucket.

    I can get it working when I save FFmpeg output to a file, then createReadableStream from the file, and then pipe that to createWriteStream()

    however, I dont want to generate a static file, and then go through that process every time

    Why can I not just simply pipe FFmpeg.stdout.pipe(file.createWriteStream()) ?

    FYI : I am running FFmpeg as a child process

         spawnFFMPEG = () => {
    this.ffmpeg = child_process.spawn('ffmpeg',
     [
       '-f', 'lavfi', '-i', 'anullsrc',
       '-thread_queue_size', '512',
       '-i', '-',
       '-shortest', '-vcodec', 'copy',
       '-f', 'avi',
       'pipe:1'
     ]
    )

    this.ffmpeg.stdout.pipe(myWritableStream)