
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (27)
-
Initialisation de MediaSPIP (préconfiguration)
20 février 2010, parLors de l’installation de MediaSPIP, celui-ci est préconfiguré pour les usages les plus fréquents.
Cette préconfiguration est réalisée par un plugin activé par défaut et non désactivable appelé MediaSPIP Init.
Ce plugin sert à préconfigurer de manière correcte chaque instance de MediaSPIP. Il doit donc être placé dans le dossier plugins-dist/ du site ou de la ferme pour être installé par défaut avant de pouvoir utiliser le site.
Dans un premier temps il active ou désactive des options de SPIP qui ne le (...) -
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 -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;
Sur d’autres sites (5482)
-
Revision 55037 : Et Google +1 sous forme de lien sans JS (donc sans tracking ! (cf ...
1er décembre 2011, par real3t@… — LogEt Google +1 sous forme de lien sans JS (donc sans tracking ! (cf http://www.ghacks.net/2011/11/30/embed-facebook-twitter-google-plus-without-javascript/)
-
Revision 53928 : Ajout de la possibilité de ne pas afficher les photos de profil sous ...
1er novembre 2011, par yffic@… — LogAjout de la possibilité de ne pas afficher les photos de profil sous le bouton facebook like
-
Add audio to Xuggler video stream (ffmpeg)
11 avril 2017, par zholmes1I am trying to set up Facebook live video streaming in Java. I maintain a
BufferedImage
separately from this method which contains the image that is being streamed. I am connecting successfully and streaming the video, but Facebook takes the video down after two minutes because I am not sending audio as well. How can I add audio to this stream ?IContainer container = IContainer.make();
IContainerFormat containerFormat_live = IContainerFormat.make();
containerFormat_live.setOutputFormat("flv", streamUrl, null);
container.setInputBufferLength(0);
int retVal = container.open(streamUrl, IContainer.Type.WRITE, containerFormat_live);
if (retVal < 0) {
System.err.println("Could not open output container for live stream");
System.exit(1);
}
IStream videoStream = container.addNewStream(0);
IStreamCoder videoCoder = videoStream.getStreamCoder();
ICodec videoCodec = ICodec.findEncodingCodec(ICodec.ID.CODEC_ID_H264);
videoCoder.setNumPicturesInGroupOfPictures(5);
videoCoder.setCodec(videoCodec);
videoCoder.setBitRate(200000);
videoCoder.setPixelType(IPixelFormat.Type.YUV420P);
videoCoder.setHeight(IMAGE_HEIGHT_PX_OUTPUT);
videoCoder.setWidth(IMAGE_WIDTH_PX_OUTPUT);
System.out.println("[ENCODER] video size is " + IMAGE_HEIGHT_PX_OUTPUT + "x" + IMAGE_WIDTH_PX_OUTPUT);
videoCoder.setFlag(IStreamCoder.Flags.FLAG_QSCALE, true);
videoCoder.setGlobalQuality(0);
IRational frameRate = IRational.make(30, 1);
videoCoder.setFrameRate(frameRate);
IRational timeBase = IRational.make(frameRate.getDenominator(), frameRate.getNumerator());
videoCoder.setTimeBase(timeBase);
// IStream audioStream = container.addNewStream(1);
// IStreamCoder audioCoder = audioStream.getStreamCoder();
// ICodec audioCodec = ICodec.findEncodingCodec(ICodec.ID.CODEC_ID_AAC);
// audioCoder.setCodec(audioCodec);
// audioCoder.setBitRate(128 * 1024);
// audioCoder.setChannels(1);
// audioCoder.setSampleRate(44100);
// audioCoder.setFrameRate(IRational.make(1, 1));
// audioCoder.setTimeBase(timeBase);
//
// IAudioResampler audioResampler = IAudioResampler.make(audioCoder.getChannels(), audioCoder.getChannels(), audioCoder.getSampleRate(), audioCoder.getSampleRate(), IAudioSamples.Format.FMT_S32, audioCoder.getSampleFormat());
Properties props = new Properties();
InputStream is = XugglerRtmpReferenceImpl.class.getResourceAsStream("/libx264-normal.ffpreset");
try {
props.load(is);
} catch (IOException e) {
System.err.println("You need the libx264-normal.ffpreset file from the Xuggle distribution in your classpath.");
System.exit(1);
}
Configuration.configure(props, videoCoder);
// Configuration.configure(props, audioCoder);
videoCoder.open();
// audioCoder.open();
container.writeHeader();
// IAudioSamples audioSamples = IAudioSamples.make(512, audioCoder.getChannels());
// audioSamples.setComplete(true, 1024, audioCoder.getSampleRate(), audioCoder.getChannels(), IAudioSamples.Format.FMT_S32, 0);
//
// IAudioSamples resampledAudio = IAudioSamples.make(512, audioCoder.getChannels(), IAudioSamples.Format.FMT_S32);
// audioResampler.resample(resampledAudio, audioSamples, 0);
long firstTimeStamp = System.currentTimeMillis();
long lastKeyFrameTimestamp = 0;
long lastTimeStamp = System.currentTimeMillis();
int i = 0;
while (streaming) {
//long iterationStartTime = System.currentTimeMillis();
long now = System.currentTimeMillis();
//convert it for Xuggler
BufferedImage currentScreenshot = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
currentScreenshot.getGraphics().drawImage(bufferedImage, 0, 0, null);
//start the encoding process
IPacket packet = IPacket.make();
IConverter converter = ConverterFactory.createConverter(currentScreenshot, IPixelFormat.Type.YUV420P);
long timeStamp = (now - firstTimeStamp) * 1000;
IVideoPicture outFrame = converter.toPicture(currentScreenshot, timeStamp);
// make sure there is a keyframe at least every 2 seconds
if (System.currentTimeMillis() - lastKeyFrameTimestamp > 1500) {
outFrame.setKeyFrame(true);
lastKeyFrameTimestamp = System.currentTimeMillis();
}
outFrame.setQuality(0);
videoCoder.encodeVideo(packet, outFrame, 0);
// audioCoder.encodeAudio(packet, IAudioSamples.make(0, audioCoder.getChannels()), 0);
outFrame.delete();
if (packet.isComplete()) {
container.writePacket(packet);
System.out.println("[ENCODER] writing packet of size " + packet.getSize() + " for elapsed time " + ((timeStamp - lastTimeStamp) / 1000));
lastTimeStamp = System.currentTimeMillis();
}
System.out.println("[ENCODER] encoded image " + i + " in " + (System.currentTimeMillis() - now));
i++;
try {
// sleep for framerate milliseconds
Thread.sleep(Math.max((long) (1000 / frameRate.getDouble()) - (System.currentTimeMillis() - now), 0));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
container.writeTrailer();