Recherche avancée

Médias (0)

Mot : - Tags -/content

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (106)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

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

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (15100)

  • Attempting to use recursion, why does my code only download 4 videos and exit ?

    16 avril 2024, par Andrew Atwood

    I am attempting to download videos from an API that I have access to. This should loop through all of the videos that were returned from the API call, save them to disc, use ffmpeg to verify the meta data from the API (this step is necessary because the API is sometimes returning incorrect information), then save attribution information and continue on if no error. However, my output from the below code is simple this :

    


    []
Download Done: 0
Saved 'Owner: Anthony �; Owner URL: https://www.pexels.com/@inspiredimages' to animals.txt     
13
0
Download Done: 1
Saved 'Owner: PMA; Owner URL: https://www.pexels.com/@pma-1470250' to animals.txt
35
1
Download Done: 2
Saved 'Owner: Pressmaster; Owner URL: https://www.pexels.com/@pressmaster' to animals.txt      
65
2
Download Done: 3
Saved 'Owner: Ruvim Miksanskiy; Owner URL: https://www.pexels.com/@digitech' to animals.txt    
75
3


    


    No errors, no exit code. Just stops running. I've walked through the process in my head a few times, and I can't figure out why it only gets called 4 times. Would anyone have any insight as to where I could try troubleshooting ?

    


    Code Here :

    


    require("dotenv").config();
const axios = require("axios");
const concat = require("ffmpeg-concat");
const fluent = require("fluent-ffmpeg");
const fs = require("fs");

const PEXELS_API_KEY = process.env.PEXELS_API_KEY;

const SUBTOPIC = "animals";

const URLBase = `https://api.pexels.com/videos/search?query=${SUBTOPIC}&per_page=80&size=medium&orientation=landscape`;
let rVideos;
let videosToConcat = [];
let duration = 0;
let current = 0;

const fetchVideos = async () => {
  const response = await axios.get(URLBase, {
    headers: {
      Authorization: PEXELS_API_KEY,
    },
  });

  return response.data.videos;
};

const writeVideoToDisc = async (videoObj) => {
  let found = false;
  videoObj.forEach(async (file, index) => {
    if (
      found === false &&
      file.quality === "hd" &&
      file.width === 1920 &&
      file.height === 1080 &&
      file.file_type === "video/mp4"
    ) {
      found = true;
      let writer = fs.createWriteStream("raw/" + current + ".mp4");
      let streamResponse = await axios({
        url: rVideos[current].video_files[index].link,
        method: "get",
        responseType: "stream",
      });
      streamResponse.data.pipe(writer);
      writer.on("finish", () => {
        console.log(`Download Done: ${current}`);
        fluent.ffprobe(`./raw/${current}.mp4`, (err, metadata) => {
          if (err) {
            console.error(err);
          } else {
            if (
              metadata.streams[0].width !== 1920 ||
              metadata.streams[0].height !== 1080
            ) {
              fs.unlink(`./raw/${current}.mp4`, (err) => {
                if (err) throw err;
                console.log("File deleted!");
              });
            } else {
              duration += rVideos[current].duration;
              videosToConcat.push(`./raw/${current}.mp4`);
              fs.appendFile(
                `./attribution/${SUBTOPIC}.txt`,
                `Owner: ${rVideos[current].user.name}; Owner URL: ${rVideos[current].user.url} \n`,
                function (err) {
                  if (err) throw err;
                  console.log(
                    `Saved 'Owner: ${rVideos[current].user.name}; Owner URL: ${rVideos[current].user.url}' to ${SUBTOPIC}.txt`
                  );
                  if (duration < 600) {
                    console.log(duration);
                    console.log(current);
                    current++;
                    writeVideoToDisc(rVideos[current].video_files);
                  }
                }
              );
            }
          }
        });
      });
      writer.on("error", () => console.error("Error while dowloading video"));
    }
  });
};

const main = async () => {
  rVideos = await fetchVideos();
  console.log(rVideos.length);
  await writeVideoToDisc(rVideos[current].video_files);
  console.log(videosToConcat);
  // concat videos together
};

main();


    


  • download rtmp live stream video secondly

    15 juillet 2024, par Chenguang He

    I'm working on a java project to create a rtmp server and download the real-time flv video every second(need to download multiple recording frame secondly instead of download entire recording after live stream finished)
This is my logic, firstly listen to the rtmp channel to write video and audio into file

    


    if(msg instanceof VideoMessage vm){
byteArrayOutputStream = new ByteArrayOutputStream();
 byteArrayOutputStream.writeBytes(vm.getVideoData());
            File file = new File("tmp/video_" + i);
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(byteArrayOutputStream.toByteArray());
            fos.close();

}


    


    Then decode to H264 to get playable flv file

    


    FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(input);
grabber.setFormat("h264");
        grabber.start();
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputFilePath, grabber.getImageWidth(), grabber.getImageHeight());
recorder.start();
while ((frame = grabber.grab()) != null) {
            recorder.record(frame);
        }
grabber.stop();
        grabber.release();
        recorder.stop();
        recorder.release();
}


    


    But this login was failed. I met this issue when I implemented the ffmpeg

    


    data partitioning is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.


    


    Is there any other idea to solve this or other way to achieve the logic ? Thanks

    


  • How to Download YouTube Videos in 1080p with English Subtitles Using yt-dlp with Python 3

    30 juillet 2024, par edge selcuk

    I am trying to download YouTube videos using yt-dlp in Python 3.9. I want to download videos in 1080p quality and if 1080p is not available, it should download the best available quality. The audio and video files should be merged into a single MP4 file, and I have ffmpeg installed to handle the merging process.

    


    Here is my script :

    


    import os
import sys
from yt_dlp import YoutubeDL

def download_video(url):
    output_dir = r"/path"  # Update this path

    # Ensure the output directory exists
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    ydl_opts = {
        'format': '(bestvideo[height<=1080][ext=mp4]/bestvideo)+bestaudio/best',
        'merge_output_format': 'mp4',
        'write_auto_sub': True,
        'writesubtitles': True,
        'subtitleslangs': ['en'],
        'subtitlesformat': 'vtt',
        'embedsubtitles': True,
        'outtmpl': os.path.join(output_dir, '%(title)s.%(ext)s'),
        'postprocessors': [{
            'key': 'FFmpegVideoConvertor',
            'preferedformat': 'mp4',
        }],
    }

    with YoutubeDL(ydl_opts) as ydl:
        ydl.download([url])

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python download_video.py ")
        sys.exit(1)

    youtube_url = sys.argv[1]
    download_video(youtube_url)


    


    This script successfully downloads the video in 1080p quality or the best available quality and merges the audio and video files as intended. However, it does not download the subtitles as intended.

    


    I have ffmpeg installed for merging the video and audio files. How can I modify this script to ensure that English subtitles are downloaded and embedded in the video file ?