
Recherche avancée
Médias (91)
-
DJ Z-trip - Victory Lap : The Obama Mix Pt. 2
15 septembre 2011
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Matmos - Action at a Distance
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
DJ Dolores - Oslodum 2004 (includes (cc) sample of “Oslodum” by Gilberto Gil)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Danger Mouse & Jemini - What U Sittin’ On ? (starring Cee Lo and Tha Alkaholiks)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Cornelius - Wataridori 2
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Rapture - Sister Saviour (Blackstrobe Remix)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (37)
-
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 -
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Configuration spécifique pour PHP5
4 février 2011, parPHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
Modules spécifiques
Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)
Sur d’autres sites (3397)
-
How to add a token verification in url with Laravel when playing HLS videos ?
31 mars 2022, par PhilipI have been playing with Laravel and FFMPEG for few weeks but got stuck. Hope someone could help here. Thank you in advanced.


Background


I have a video website build with Laravel 9. I use FFMPEG to convert uploaded MP4 to HLS with laravel-ffmpeg package. AES encryption is applied. Then I store the converted m3u8 playlist, key and ts file in Storage path with symlinks created to public folder. I stored the path in database and call it in view file. I use plyr + hls.js to play the video. Everything is working fine.


However, I would like to further protect my videos from being played by other website. I blocked the cross domain access in Nginx but seem it only check the referrer which could be faked. I can see many video websites that their m3u8 path contains a token parameter :


https://some-domain.com/videos/index.m3u8?token=abc123456



I am trying to do the same but stuck.


These are my Laravel files


VideoController


This will convert mp4 to m3u8 , key, ts files and save to database


FFMpeg::fromDisk('videos')
 ->open($queue->path)
 ->exportForHLS()
 ->withRotatingEncryptionKey(function($filename,$content) use($queue){
 Storage::disk('videos')->put('m3u8/'.$queue->video->slug.'/'.$filename, $content);
 })
 ->setSegmentLength(10) // optional
 ->setKeyFrameInterval(48) // optional
 ->onProgress(function ($percentage, $remaining, $rate) use($queue){
 $queue->update([
 'is_processing'=>true,
 'percentage'=>$percentage,
 'remaining'=>$remaining,
 'rate'=>$rate,
 ]);
 })
 ->addFormat($resolution_720)
 ->save($m3u8_path);



blade file


This will show the m3u8 playlist path and pass to js file


@if (isset($video->play_url) && $video->play_url != '')
 <div class="col-12 mb-3 single-video">
 <video playsinline="playsinline" controls="controls" muted="muted">

 </video>
 <code class="echappe-js"><script> &#xA; var m3u8 = "{{ $video->play_url }}" &#xA; var token = &#x27;token_xxxxxxxx&#x27;&#xA; </script>


@endif



js file


This will play the video (with plyr player)


const player = new Plyr('#player');
if(typeof(m3u8) != "undefined" && m3u8 !== null){
 m3u8 = m3u8 + '?token=' + token
 console.log(m3u8,token)
 var video = document.getElementById('player');
 if(Hls.isSupported()) {
 var hls = new Hls();
 hls.loadSource(m3u8);
 hls.attachMedia(video);

 }else if (video.canPlayType('application/vnd.apple.mpegurl')) {
 video.src = m3u8;

 }

}



If I remove "token" from the above code. The video plays fine. But now I could like to check if the token valid before returning the file. I remove the symlink to prevent direct access to the file.


public_path('m3u8') => storage_path('app/videos/m3u8'),



Route


in web.php, I added few routes to check the token


Route::get('/m3u8/{slug}/{filename}.m3u8', [VideoController::class, 'get_m3u8'])->name('video.m3u8');
 Route::get('/m3u8/{slug}/{filename}.ts', [VideoController::class, 'get_ts'])->name('video.ts');
 Route::get('/m3u8/{slug}/{filename}.key', [VideoController::class, 'get_key'])->name('video.key');



Then in VideoController


public function get_m3u8(Request $request ,$slug ,$filename)
{
 if($request->token == 123){
 return response()->file(storage_path('app/videos/m3u8/'.$slug.'/'.$filename .'.m3u8'),[
 'Content-Type' => 'application/x-mpegURL',
 ]);
 }else{
 return abort('403');
 }
}



But the video cannot be played. Because when loading index.m3u8, it loads index_0_1200.m3u8 next and then load the rest of ts files which all do not contain the token. But I cannot add to token duration the conversion from mp4 to hls because in actually case the token will be dynamic such as adding timestamp.


Please advise. Thank you. My final aim is to prevent other from using the m3u8 playlist and key files to play my ts files. It will consume a lot of bandwidth.


add custom ffmpeg avfilter in mlt [closed]
I created one custom filter under av filter and added it into ffmpeg.
I build the ffmpeg and in ffmpeg its working fine and visible in ffmpeg filter list.


Now I tried to build mlt with this custom ffmpeg. mlt build successfully.
I checked in mlt filters but it is not available.


On investigating I found in mlt there is no avfilter available which can take 2 videos as input.
As my filter also takes 2 videos as input and apply some filter and output one video that's why it's not available.


Now I want to know


- 

- Why mlt is not supporting multiple input av filters ?
- Where in code mlt restricted it.
- What is the best way to add this filter ?








How to add progress bar to FFMPEG android
I want add a progress bar during FFMPEG
execution android.
When i start FFMPEG
command then progress bar start with percentage progress.