
Recherche avancée
Autres articles (77)
-
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, 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 (...) -
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)
Sur d’autres sites (6881)
-
HTML5 Video/Audio to Nodejs via Socket.io but with a twist - FFMPEG
9 janvier 2014, par user1840958I'm writing this very simple "skype clone". I tried a variety of other languages, python and layering over Node.js with Meteor, WebRTC, but Node.js+socket.io seems to be working the best and cleanest however I've hit a road block and I can't get it all to work correctly.
I have two issues,
1. I think I'm sending real data from the HTML5 getUserMedia, but I might not, and I don't know how to test or find out. I think that using, "video.src = window.URL.createObjectURL(stream) ;" makes the Blob stream an actual Data stream... but I don't know.This is my Broadcast.html
It's a very simple getUserMedia grab the camera and microphone... Then I connect to the Socket and on click of the Broadcast button, fires off the Emit to 'Join' and sends over the 'webcamstream' data.<video autoplay="autoplay" height="280"></video>
<button class="recordbutton">Broadcast</button>
<code class="echappe-js"><script language="javascript" type="text/javascript"><br />
var socket = io.connect(&#39;http://video.domain.com:3031&#39;);<br />
socket.on(&#39;connect&#39;, function() {<br />
$(&#39;#conversation&#39;).append(&#39;Connected <br />&#39;);<br />
});<br />
<br />
function onVideoFail(e) {<br />
console.log(&#39;webcam fail!&#39;, e);<br />
};<br />
<br />
function hasGetUserMedia() {<br />
return !!(navigator.getUserMedia || <br />
navigator.webkitGetUserMedia || <br />
navigator.mozGetUserMedia || <br />
navigator.msGetUserMedia);<br />
}<br />
<br />
if (hasGetUserMedia()) {<br />
alert(&#39;It is working...&#39;);<br />
} else {<br />
alert(&#39;getUserMedia() is not supported in your browser&#39;);<br />
}<br />
<br />
window.URL = window.URL || window.webkitURL;<br />
navigator.getUserMedia = navigator.getUserMedia || <br />
navigator.webkitGetUserMedia ||<br />
navigator.mozGetUserMedia || <br />
navigator.msGetUserMedia;<br />
<br />
var video = document.querySelector(&#39;video&#39;);<br />
var streamRecorder;<br />
var webcamstream;<br />
<br />
if (navigator.getUserMedia) {<br />
navigator.getUserMedia({audio: true, video: true}, function(stream) {<br />
video.src = window.URL.createObjectURL(stream);<br />
webcamstream = stream;<br />
}, onVideoFail);<br />
} else {<br />
alert (&#39;failed&#39;);<br />
}<br />
<br />
function startBroadcasting() {<br />
alert(&#39;Broadcast Now Clicked&#39;);<br />
console.log(webcamstream);<br />
socket.emit(&#39;join&#39;, webcamstream);<br />
socket.emit(&#39;echo&#39;, &#39;echo1 echo2 echo3 <br />&#39;);<br />
}<br />
<br />
socket.on(&#39;echo&#39;, function(data) {<br />
$(&#39;#conversation&#39;).append(data);<br />
}); <br />
</code></pre><br />
<br />
<p></p><br />
<br />
<p>This is the app.js<br />
2. What I&#39;m trying to do here is consume in the &#39;stream&#39; from the socket, but in it&#39;s place I have a test video to see if the FFMPEG is actually working. I&#39;m using <a href="https://github.com/schaermu/node-fluent-ffmpeg" rel="nofollow">https://github.com/schaermu/node-fluent-ffmpeg</a>.</p><br />
<br />
<p>When I run this test with my myth.mp4 file, I do get an out.avi however it&#39;s 0 bytes ??</p><br />
<br />
<pre><code>var express = require(&#39;express&#39;);<br />
var socket = require(&#39;socket.io&#39;);<br />
var ffmpeg = require(&#39;fluent-ffmpeg&#39;);<br />
var fs = require(&#39;fs&#39;);<br />
<br />
var app = express();<br />
<br />
app.configure(function(req, res){<br />
app.use(express.static(__dirname + &#39;/&#39;));<br />
});<br />
<br />
var server = app.listen(3031);<br />
var io = socket.listen(server);<br />
<br />
io.sockets.on(&#39;connection&#39;, function(socket) {<br />
socket.on(&#39;join&#39;, function(stream) {<br />
socket.stream = stream;<br />
socket.emit(&#39;echo&#39;, socket.stream + &#39;<br />&#39;);<br />
var proc = new ffmpeg({source:&#39;/srv/www/domain.com/video/red/myth.mp4&#39;})<br />
.withAspect(&#39;4:3&#39;)<br />
.withSize(&#39;640x480&#39;)<br />
.applyAutopadding(true, &#39;white&#39;)<br />
.saveToFile(&#39;/srv/www/domain.com/video/red/out.avi&#39;, function(retcode, error){<br />
socket.emit(&#39;echo&#39;, &#39;file has been converted succesfully <br />&#39;);<br />
});<br />
});<br />
socket.on(&#39;echo&#39;, function(data) {<br />
socket.emit(&#39;echo&#39;, data);<br />
});<br />
});<br />
</code></pre><br />
<br />
<p>I get no errors on Node Start up, I get no Errors on running. I do get a 0 Byte out.avi file freshly created every time I run this.</p><br />
<br />
<p>I have a linode VPS with CentOS/Nginx</p><br />
<br />
<p>node -v<br />
v0.10.21</p><br />
<br />
<p>FFMPEG<br />
ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers<br />
built on Nov 23 2013 17:43:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)<br />
configuration: --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libvo-aacenc --enable-libxvid --disable-ffplay --enable-shared --enable-gpl --enable-postproc --enable-nonfree --enable-avfilter --enable-pthreads --extra-cflags=-fPIC<br />
libavutil 52. 18.100 / 52. 18.100<br />
libavcodec 54. 92.100 / 54. 92.100<br />
libavformat 54. 63.104 / 54. 63.104<br />
libavdevice 54. 3.103 / 54. 3.103<br />
libavfilter 3. 42.103 / 3. 42.103<br />
libswscale 2. 2.100 / 2. 2.100<br />
libswresample 0. 17.102 / 0. 17.102<br />
libpostproc 52. 2.100 / 52. 2.100<br />
Hyper fast Audio and Video encoder<br />
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...</p><br />
<br />
<p>Thanks in advance for your help.</p> -
ffmpeg errors when playing a playlist - Non monotonous DTS
20 novembre 2023, par Evilmachinei have a strange bug in ffmpeg. I am using ffmpeg to stream Twitch VODs and CLIPs to a 24/7 twitch channel. If i stream the files one by one its working. If i am streaming a playlist containing vods and clips i get this error when the shorter clips are playing :


[flv @ 0x555677050c60] Non-monotonous DTS in output stream 0:0; previous: 56867, current: 31846; changing to 56867. This may result in incorrect timestamps in the output file.


and the video stops. Once the playlist has a longer vod again it is working.


here is my code that i use to stream :


while [ 1 -eq 1 ]
do
ffmpeg -fflags +igndts -re -f concat -safe 0 -i playlist.txt -codec copy -flvflags no_duration_filesize -f flv rtmp://XXXXXXXXX
done



If i look into ffprobe the files seems both to be normal :


VODs


ffprobe version 5.1.3-1+rpt4 Copyright (c) 2007-2022 the FFmpeg developers
 built with gcc 12 (Debian 12.2.0-14)
 configuration: --prefix=/usr --extra-version=1+rpt4 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Speedrun - Goof Troop - Coop - @olli_wan und luk30994 -- Disney's Goof Troop.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2023-10-17T11:46:25.000000Z
 Duration: 00:28:23.02, start: 0.000000, bitrate: 1004 kb/s
 Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 873 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
 Metadata:
 creation_time : 2023-10-17T11:46:25.000000Z
 handler_name : ISO Media file produced by Google Inc. Created on: 10/17/2023.
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-10-17T11:46:25.000000Z
 handler_name : ISO Media file produced by Google Inc. Created on: 10/17/2023.
 vendor_id : [0][0][0][0]



CLIPS


ffprobe version 5.1.3-1+rpt4 Copyright (c) 2007-2022 the FFmpeg developers
 built with gcc 12 (Debian 12.2.0-14)
 configuration: --prefix=/usr --extra-version=1+rpt4 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Clip -- Luk - Terra - Lebensweisheiten mit Lukas Thema Smart.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf57.83.100
 Duration: 00:00:05.00, start: 0.000000, bitrate: 5520 kb/s
 Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, unknown/bt709/unknown, progressive), 1280x720, 5374 kb/s, 60.20 fps, 60 tbr, 15360 tbn (default)
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]



Has someone a hint why this error happens and how i can avoid them ?
Is gstreamer better for this approach ?


Thanks a lot in Advance.


I tried changing the files.


-
Revision 65864 : suivre r63330 qui faisait qu’on ajoutait l’id_mot dans l’input au lieu ...
14 septembre 2012, par brunobergot@… — Logsuivre r63330 qui faisait qu’on ajoutait l’id_mot dans l’input au lieu de son titre (petit canaillou de rasta va :p)