
Recherche avancée
Médias (1)
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
Autres articles (45)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
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 (...)
Sur d’autres sites (9657)
-
FFmpeg output video is not seekable. Output video is not playing instantly instead browser loads it completely then plays it
19 février 2024, par Mohit56Hi I am using ffmpeg to transcode video. In my code I have used 'fluent-ffmpeg' npm package with nodeJs and 'aws-sdk' to save output video by writestream into s3 bucket.


Problem
-> Video is getting transcoded and I am successfully able to save the video into s3 bucket but. As I paste the object_url of that video into browser and try to play, but that video is not playing instantly I have checked on 'developer console tool' browser is loading all the video once that is done then only it starts playing that is a problem.


->Let say if I have output video of size 10GB on that case browser will load all 10GB data then only it will start playing that video.


->If I am not using writestream approach and directly upload the video into local directory first then upload into s3 bucket, In this case if I play the video using object URL then that video plays instantly. In this case I don't have to wait for whole 10GB video to load then play it which is good.


-> Can anybody help me to fix my writestream solution because I don't want to save the output video into my localdirectory. I want to writestream the output video directly into s3 bucket.


Code Snippet


const ffmpeg = require('fluent-ffmpeg');
const AWS = require('aws-sdk'); 
const stream = require("stream");

//set up your aws connection

const command = ffmpeg(inputVideoURL) 
.outputOptions(['-movflags', 'frag_keyframe']) 
.size('854x480') // set the desired resolution (480p) .outputFormat('mp4') 
.videoCodec('libx264') 
.audioCodec('aac') 
.on('progress',(p)=>{ console.log(p) }) 
.on('stderr',(err)=>console.log(err)) 
.on('start', commandLine => console.log('Spawned FFmpeg with command: ' + commandLine)) 
.on('end', () => console.log('Transcoding finished.')) 
.on('error', err => console.error('Error:', err))

//=>To save file into s3 using write steam. command.writeToStream(uploadFolderFileWriteStream('StreamCheck/output2.mp4'));

function uploadFolderFileWriteStream(fileName) { try { const pass = new stream.PassThrough();

const params = {
 Bucket: bucketName,
 Key: fileName,
 Body: pass,
 ACL: "public-read",
 ContentType:'video/mp4' ,
};

const upload = s3.upload(params);

upload.on('error', function(err) {
 console.log("Error uploading to S3:", err);
});

upload.send(function(err, data) {
 if(err) console.log(err);
 else console.log("Upload to S3 completed:", data);
});

return pass;

} catch (err) { console.log("[S3 createWriteStream]", err); } }



I have tried below option as well be all of them not worked 
-> .addOption("-movflags frag_keyframe+empty_moov") 
-> .addOption('-movflags', 'frag_keyframe+empty_moov') 
-> .addOutputOption("-movflags +faststart")
-> .addOption('-movflags', 'faststart+frag_keyframe+empty_moov+default_base_moof')



-
Why does the VoiceNext D#+ library not work (not playing audio), despite not throwing any errors ?
17 juin 2024, par Overo3Using the DSharpPlus library, with conversion via ffmpeg, I have taken a YouTube video stream and converted it to PCM Stereo (the expected format), but when copying the stream to the buffer, no audio can be heard in the voice channel.
Code for MusicCommands.cs :


using System.ComponentModel.DataAnnotations.Schema;
using System.Threading.Channels;
using DSharpPlus;
using DSharpPlus.Entities;
using DSharpPlus.SlashCommands;
using DSharpPlus.SlashCommands.Attributes;
using DSharpPlus.VoiceNext;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using YoutubeExplode;
using YoutubeExplode.Videos.Streams;

namespace Nexus
{
 public class MusicCommands : ApplicationCommandModule
 {
 [SlashCommand("join","Join a voice channel")]
 public async Task JoinCommand(InteractionContext ctx)
 {
 DiscordChannel channel = ctx.Member.VoiceState?.Channel;
 await channel.ConnectAsync();
 }

 [SlashCommand("play","Play audio source")]
 public async Task PlayCommand(InteractionContext ctx, [Option("ytid","Youtube ID or link")] string path)
 {
 var vnext = ctx.Client.GetVoiceNext();
 var connection = vnext.GetConnection(ctx.Guild);

 var transmit = connection.GetTransmitSink();

 Task<stream> audio = GetYoutubeVideoStream(path);
 dynamic result = await audio;
 await result.CopyToAsync(transmit);
 await result.DisposeAsync();
 }

 [SlashCommand("leave","Leave a voice channel")]
 public async Task LeaveCommand(InteractionContext ctx)
 {
 var vnext = ctx.Client.GetVoiceNext();
 var connection = vnext.GetConnection(ctx.Guild);

 connection.Disconnect();
 }
 private static async Task<stream> GetYoutubeVideoStream(string ytID)
 {
 var youtube = new YoutubeClient();
 var streamManifest = await youtube.Videos.Streams.GetManifestAsync(ytID);
 var streamInfo = streamManifest.GetAudioOnlyStreams().GetWithHighestBitrate();
 var stream = await youtube.Videos.Streams.GetAsync(streamInfo);
 var process = new Process
 {
 StartInfo =
 {
 FileName = "ffmpeg",
 Arguments = $@"-ac 2 -f s16le -ar 48000 pipe:1 -i -",
 RedirectStandardOutput = true,
 UseShellExecute = false
 }
 };

 var ffmpegIn = process.StandardInput.BaseStream;
 stream.CopyTo(ffmpegIn);
 var outputStream = process.StandardOutput.BaseStream;
 return outputStream;
 }
 }
}
</stream></stream>


According to the Discord voice docs, the S16LE PCM stereo 48000hz sample rate should be correct, and it doesn't throw any errors when using any of the commands, but it doesn't play any audio.


-
HTML5 video player some mp4 files not playing chrome
1er juillet 2020, par MarcSo I'm trying to build a personnal streaming platform and I've done my best to follow the recommandations I've found everywhere for better compatibility/quality when streaming.



So I'm systematically encoding my video to video codec h264 with mp4 container with ffmpeg using this command :



ffmpeg -i input -vcodec libx264 -maxrate 8000k -bufsize 1000K -minrate 10k -crf 24 -ab 192k -movflags faststart output.mp4




However, I occasionaly fall on some reluctant mp4 that will play fine on Edge and Firefox but won't on Chrome. Loading seems to be processed fine as I can see the total duration in the controls, but it will never play and will not leave any error in the console.



Here's a Mediainfo export of such reluctant file :



Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 1.04 GiB
Duration : 1 h 21 min
Overall bit rate : 1 832 kb/s
Writing application : Lavf57.56.101

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1 h 21 min
Bit rate : 1 634 kb/s
Width : 1 912 pixels
Height : 1 032 pixels
Display aspect ratio : 1.85:1
Frame rate mode : Constant
Frame rate : 24.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.035
Stream size : 953 MiB (89%)
Writing library : x264 core 148 r2748 97eaef2
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=9 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=24.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=8000 / vbv_bufsize=1000 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00
Language : French
Menus : 3
Codec configuration box : avcC

Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 1 h 21 min
Bit rate mode : Constant
Bit rate : 192 kb/s
Channel(s) : 6 channels
Channel layout : C L R Ls Rs LFE
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 112 MiB (11%)
Language : French
Default : Yes
Alternate group : 1
Menus : 3

Menu #1
ID : 3
Codec ID : text
Duration : 1 h 21 min
Language : English
Bit rate mode : CBR
Menu For : 1,2
00:00:00.000 : Chapitre 01
00:08:39.000 : Chapitre 02
00:15:10.000 : Chapitre 03
00:24:47.000 : Chapitre 04
00:33:39.000 : Chapitre 05
00:43:38.000 : Chapitre 06
00:50:51.000 : Chapitre 07
00:59:13.000 : Chapitre 08
01:08:01.000 : Chapitre 09
01:14:06.000 : Chapitre 10
Bit rate mode : Constant

Menu #2
00:00:00.000 : Chapitre 01
00:08:39.000 : Chapitre 02
00:15:10.000 : Chapitre 03
00:24:47.000 : Chapitre 04
00:33:39.000 : Chapitre 05
00:43:38.000 : Chapitre 06
00:50:51.000 : Chapitre 07
00:59:13.000 : Chapitre 08
01:08:01.000 : Chapitre 09
01:14:06.000 : Chapitre 10




Thanks in advance for any valuable tip you could provide