
Recherche avancée
Autres articles (109)
-
Qualité du média après traitement
21 juin 2013, parLe bon réglage du logiciel qui traite les média est important pour un équilibre entre les partis ( bande passante de l’hébergeur, qualité du média pour le rédacteur et le visiteur, accessibilité pour le visiteur ). Comment régler la qualité de son média ?
Plus la qualité du média est importante, plus la bande passante sera utilisée. Le visiteur avec une connexion internet à petit débit devra attendre plus longtemps. Inversement plus, la qualité du média est pauvre et donc le média devient dégradé voire (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Déploiements possibles
31 janvier 2010, parDeux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
Version mono serveur
La version mono serveur consiste à n’utiliser qu’une (...)
Sur d’autres sites (12680)
-
How to live stream frame by frame using rtmp
31 juillet 2022, par wmatteiI am trying to build an application that generates some random images, and pushes that to a live stream.


I am using node node-media-server to start my rtmp stream, and ffmpeg to convert my images to flv and publish to the rtmp server.


The problem is, as soon as I publish my first image, the stream is marked as closed, and the client disconnected, even tho I have more images to push.


Here is a code snippet on what I am trying to do :


Node Media Server config :


const NodeMediaServer = require("node-media-server");

const nms = new NodeMediaServer({
 logType: 3,
 rtmp: {
 port: 1935,
 chunk_size: 60000,
 gop_cache: true,
 ping: 30,
 ping_timeout: 60,
 },
 http: {
 port: 8000,
 allow_origin: "*",
 },
});
nms.run();




Publish of images using ffmpeg


for (let i = 0; i < 10; i++) {
 const buffer = await generateImage(i)

 ffmpeg()
 .input(Readable.from(buffer))
 .inputFormat("image2pipe")
 .videoCodec("libx264")
 .outputFormat("flv")
 .output("rtmp://localhost/live/snake")
 .on("start", (cmdline) => console.log(cmdline))
 .run();
 }



Frontend



 
 <code class="echappe-js"><script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js"></script>

<script>&#xA; let flvPlayer;&#xA; function onload() {&#xA; if (flvjs.isSupported()) {&#xA; const videoElement = document.getElementById("videoElement");&#xA; flvPlayer = flvjs.createPlayer({&#xA; type: "flv",&#xA; url: "http://localhost:8000/live/snake.flv",&#xA; });&#xA; flvPlayer.attachMediaElement(videoElement);&#xA; flvPlayer.load();&#xA; }&#xA; }&#xA;&#xA; function play() {&#xA; flvPlayer.play();&#xA; }&#xA; function stop() {&#xA; flvPlayer.pause();&#xA; }&#xA; </script>

 

<body onload="onload()">




 
 





If I add the option
loop=1
the the first frame will be displayed in the page forever. But the second frame won't take it's place.

-
HLS video stream keeps refreshing whenever new .ts is added to the .m3u8 file (using HLS.js)
4 mai 2023, par debugehlotI am converting a live RTSP stream to hls and displaying it on the browser. Here is the ffmpeg command -


command_string ="ffmpeg -fflags nobuffer -report \
 -loglevel debug \
 -rtsp_transport tcp \
 -re -i rtsp://username:password@192.168.12.43:554/stream1 \
 -vsync 0 \
 -vcodec copy \
 -movflags frag_keyframe \
 -f hls \
 -hls_time 4 \
 -hls_list_size 0 \
 -force_key_frames \"expr:gte(t,n_forced*10)\" \
 -hls_segment_type mpegts \
 -hls_segment_filename public\%d.ts \
 public\index.m3u8



I am running it in a python subprocess. The m3u8 file created is -


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.973744,
0.ts
#EXTINF:4.015867,
1.ts
#EXTINF:3.997500,
2.ts
#EXTINF:3.999844,
3.ts
#EXTINF:4.000000,
4.ts
#EXTINF:4.012889,
5.ts



Here is the HLS.js code for the browser -



 

 
 <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>

 
<script src="https://unpkg.com/video.js/dist/video.js"></script>
—>
 
<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>

 
 
 
 

 
 
 

 

<script>&#xA; if (Hls.isSupported()) {&#xA; var video = document.getElementById(&#x27;video&#x27;);&#xA; var hls = new Hls();&#xA; hls.on(Hls.Events.MEDIA_ATTACHED, function () {&#xA; console.log(&#x27;video and hls.js are now bound together !&#x27;);&#xA; });&#xA; hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {&#xA; console.log(&#xA; &#x27;manifest loaded, found &#x27; &#x2B; data.levels.length &#x2B; &#x27; quality level&#x27;&#xA; );&#xA; });&#xA; hls.loadSource(&#x27;index.m3u8&#x27;);&#xA; // bind them together&#xA; hls.attachMedia(video);&#xA; // video.play()&#xA; }&#xA; </script>





When I kill the python subprocess and play the file back it plays perfectly. But if the subprocess is running and updating the index.m3u8 file the livestream refreshes the page whenever a new .ts is added to the .m3u8.


-
Extract the first 2 minutes of video without re-encoding - ffmpeg
8 juillet 2015, par Code_Ed_StudentI am seeking a fast and efficient way of extracting the first two minutes of a video. Below script finds the nearest keyframe after 120 seconds. This keyframe searching is some what time consuming for large video files. If I disregard the keyframe and cut, I face the fact that the video maybe ruined. I have also tried forcing a keyframe but that involves re-encoding. What is the best and most efficient way to extract the first two minutes of a large video file ?
#fetch nearest keyframe after two minutes
ffprobe -select_streams v -show_frames -v quiet -i test.mp4 |
awk -F= '
/pict_type=/ { if (index($2, "I")) { i=1; } else { i=0; } }
/pkt_pts_time/ { if (i && ($2 >= 120)) print $2; }
' | head -n 1
#cut video
ffmpeg -i test.mp4 -ss 00:00:00 -t 00:02:00.15 -async 1 cut.mp4