Recherche avancée

Médias (91)

Autres articles (38)

  • 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 ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-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

Sur d’autres sites (5683)

  • tests/api/api-codec-param-test : Do not directly access caps_internal

    16 juin 2016, par Michael Niedermayer
    tests/api/api-codec-param-test : Do not directly access caps_internal
    

    The caps_internal field has moved without major bump and direct
    access causes crashes, found when testing 3.1

    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] tests/api/api-codec-param-test.c
  • avcodec/videotoolboxenc : Fix concurrent access to CVPixelBufferRef

    7 juillet 2024, par Zhao Zhili
    avcodec/videotoolboxenc : Fix concurrent access to CVPixelBufferRef
    

    For a frame comes from AV_HWDEVICE_TYPE_VIDEOTOOLBOX, it's
    CVPixelBufferRef is maintained by a pool. CVPixelBufferRef returned
    to the pool when frame buffer reference reached to zero. However,
    VTCompressionSessionEncodeFrame also hold a reference to the
    CVPixelBufferRef. So a new frame get from av_hwframe_get_buffer
    may access a CVPixelBufferRef which still used by the encoder.
    It's only after vtenc_output_callback that we can make sure
    CVPixelBufferRef has been released by the encoder.

    The issue can be tested with sample from trac #10884.
    ffmpeg -hwaccel videotoolbox \
    -hwaccel_output_format videotoolbox_vld \
    -i input.mp4 \
    -c:v hevc_videotoolbox \
    -profile:v main \
    -b:v 3M \
    -vf scale_vt=w=iw/2:h=ih/2:color_matrix=bt709:color_primaries=bt709:color_transfer=bt709 \
    -c:a copy \
    -tag:v hvc1 \
    output.mp4

    Withtout the patch, there are some out of order images in output.mp4.

    Signed-off-by : Zhao Zhili <zhilizhao@tencent.com>

    • [DH] libavcodec/videotoolboxenc.c
  • 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.

    &#xA;

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

    &#xA;

    here is the full code :

    &#xA;

    const process = require(&#x27;process&#x27;); // Required to mock environment variables&#xA;const express = require(&#x27;express&#x27;);&#xA;const helpers = require(&#x27;./helpers/index&#x27;);&#xA;const Multer = require(&#x27;multer&#x27;);&#xA;const bodyParser = require(&#x27;body-parser&#x27;);&#xA;const ffmpeg = require("ffmpeg"); //https://www.npmjs.com/package/ffmpeg&#xA;const {Storage} = require(&#x27;@google-cloud/storage&#x27;);&#xA;&#xA;// Instantiate a storage client&#xA;const storage = new Storage();&#xA;&#xA;const app = express();&#xA;app.set(&#x27;view engine&#x27;, &#x27;pug&#x27;);&#xA;app.use(bodyParser.json());&#xA;&#xA;// Multer is required to process file uploads and make them available via&#xA;// req.files.&#xA;const multer = Multer({&#xA;storage: Multer.memoryStorage(),&#xA; limits: {&#xA;  fileSize: 5 * 1024 * 1024, // no larger than 5mb, you can change as needed.&#xA; },&#xA;});&#xA;&#xA;// A bucket is a container for objects (files).&#xA;const bucket = storage.bucket(process.env.GCLOUD_STORAGE_BUCKET);&#xA;&#xA;// Display a form for uploading files.&#xA;app.get(&#x27;/&#x27;, (req, res) => {&#xA; res.render(&#x27;form.pug&#x27;);&#xA;});&#xA;&#xA;// Process the file upload and upload to Google Cloud Storage.&#xA;app.post(&#x27;/upload&#x27;, multer.single(&#x27;file&#x27;), (req, res, next) => {&#xA;&#xA;if (!req.file) {&#xA; res.status(400).send(&#x27;No file uploaded.&#x27;);&#xA; return;&#xA;}&#xA;&#xA;// Create a new blob in the bucket and upload the file data.&#xA;const blob = bucket.file(req.file.originalname);&#xA;const blobStream = blob.createWriteStream({&#xA; resumable: false,&#xA;});&#xA;&#xA;blobStream.on(&#x27;error&#x27;, err => {&#xA; next(err);&#xA;});&#xA;&#xA;blobStream.on(&#x27;finish&#x27;, () => {&#xA;&#xA;const audioFile = helpers.replaceAllExceptNumbersAndLetters(new Date());&#xA;&#xA;// this path is incorrect but I cannot find correct way to do it&#xA;const originalFilePath = `gs://${bucket.name}/${blob.name}`; &#xA;&#xA;const filePathOutput = `gs://${bucket.name}/${audioFile}.mp3`;&#xA;&#xA;try {&#xA; const process = new ffmpeg(originalFilePath);&#xA; process.then(function (video) {&#xA; // Callback mode&#xA; video.fnExtractSoundToMP3(filePathOutput, (error, file) => {&#xA; if (!error)&#xA;  res.send(`audio file: ${file}`);&#xA; });&#xA;}, (error) => {&#xA; res.send(`process error: ${error}`);&#xA;&#xA;});&#xA;} catch (e) {&#xA; res.send(`try catch error: ${JSON.stringify(e)} | bucket: ${JSON.stringify(bucket)} | &#xA; blob: : ${JSON.stringify(blob)}`);&#xA;}  &#xA;&#xA;&#xA;});&#xA;&#xA;blobStream.end(req.file.buffer);&#xA;&#xA;});&#xA;&#xA;const PORT = process.env.PORT || 8080;&#xA;app.listen(PORT, () => {&#xA; console.log(`App listening on port ${PORT}`);&#xA; console.log(&#x27;Press Ctrl&#x2B;C to quit.&#x27;);&#xA;});&#xA;&#xA;&#xA;module.exports = app;&#xA;

    &#xA;