
Recherche avancée
Médias (91)
-
Valkaama DVD Cover Outside
4 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Valkaama DVD Cover Inside
4 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
1,000,000
27 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Demon Seed
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Four of Us are Dying
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (71)
-
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 -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (8179)
-
Google - Shaka | Deleting SegmentTimeline in manifest.mpd after restart container
27 juin 2022, par burakkiymazShaka 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



-
Is it possible to convert all video files in subdirectories on google drive using ffmpeg & rclone ?
24 avril 2020, par rmsCurrently I'm using this code whereby rclone fetches 1 file from my google drive, converts it using ffpmeg on a server and moves the converted files to the same folder. It's shown as below.
Step 1 is generating a list over which rclone can iterate over and the conversion process begins with the second script in step 2



step 1



rclone lsf "gdrive:/folder" --files-only > list.txt




step 2



while read file; do
 rclone copy "gdrive:/folder/""$file" . -P
 ffmpeg -i "$file" -vf scale=-1:540 -vcodec libx265 -crf 26 "${file%.*}.mkv" null
 rm -f "$file"
 rclone move . "gdrive:/folder/" --exclude list.txt -P
done code>



However, some sub directories have nested videos to convert which would rather take a long time if I'm to do it for every folder. This brought me to my question whether it's possible to modify the above process to work with subdirectories.



I've tried
rclone lsf
to generate the list recursively using the-R
flag but ffmpeg doesn't seem to read the file from the list to make it work. Is there a way to make this work with some tweaking possibly ?

-
Upload screenshots to google cloud storage bucket with Fluent-ffmpeg
2 janvier 2021, par aarpodsI am currently using multer to upload videos to my google storage bucket, and fluent-ffmpeg to capture thumbnails of the videos. Videos are being uploaded into the buckets correctly, but not the thumbnails from ffmpeg. How can I change the location of the thumbnails to my google storage bucket ?


Back-End Video upload


require ('dotenv').config()
const express = require('express');
const router = express.Router();
const multer = require("multer");
var ffmpeg = require('fluent-ffmpeg');
const multerGoogleStorage = require('multer-google-storage');
const { Video } = require("../models/Video");
const {User} = require("../models/User")
const { auth } = require("../middleware/auth");


var storage = multer({
 destination: function (req, file, cb) {
 cb(null, 'videos/')
 },
 filename: function (req, file, cb) {
 cb(null, `${Date.now()}_${file.originalname}`)
 },
 fileFilter: (req, file, cb) => {
 const ext = path.extname(file.originalname)
 if (ext !== '.mp4' || ext !== '.mov' || ext !== '.m3u' || ext !== '.flv' || ext !== '.avi' || ext !== '.mkv') {
 return cb(res.status(400).end('Error only videos can be uploaded'), false);
 }
 cb(null,true)
 }
})
// Set location to google storage bucket
var upload = multer({ storage: multerGoogleStorage.storageEngine() }).single("file")

router.post("/uploadfiles", (req, res) => {

 upload(req, res, err => {
 if (err) {
 return res.json({sucess: false, err})
 }
 return res.json({ success: true, filePath: res.req.file.path, fileName: res.req.file.filename})
 })
});



Back-end thumbnail upload


router.post("/thumbnail", (req, res) => {

 let thumbsFilePath = "";
 let fileDuration = "";

 ffmpeg.ffprobe(req.body.filePath, function (err, metadata) {
 console.dir(metadata);
 console.log(metadata.format.duration);

 fileDuration = metadata.format.duration;
 })


 ffmpeg(req.body.filePath)
 .on('filenames', function (filenames) {
 console.log('Will generate ' + filenames.join(', '))
 thumbsFilePath = "thumbnails/" + filenames[0];
 })
 .on('end', function () {
 console.log('Screenshots taken');
 return res.json({ success: true, thumbsFilePath: thumbsFilePath, fileDuration: fileDuration })
 })
 //Can this be uploaded to google storage?
 .screenshots({
 // Will take 3 screenshots
 count: 3,
 folder: '/thumbnails/',
 size: '320x240',
 //Names file w/o extension
 filename:'thumbnail-%b.png'
 });
});



Front-end video upload


const onDrop = (files) => {
 let formData = new FormData();
 const config = {
 header: {'content-type': 'multipart/form-data'}
 }
 console.log(files)
 formData.append("file", files[0])

 axios.post('/api/video/uploadfiles', formData, config)
 .then(response => {
 if (response.data.success) {
 let variable = {
 filePath: response.data.filePath,
 fileName: response.data.fileName
 }
 setFilePath(response.data.filePath)

 //Thumbnail
 axios.post('/api/video/thumbnail', variable)
 .then(response => {
 if (response.data.success) {
 setDuration(response.data.fileDuration)
 setThumbnail(response.data.thumbsFilePath)
 } else {
 alert("Failed to generate a thumbnail");
 }
 })

 } else {
 alert('Failed to save video to the server')
 }
 })
 }