
Recherche avancée
Médias (2)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (38)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
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
Sur d’autres sites (6161)
-
Mixing audio(aac) and video (h.264 in mp4 container) and write to mp4 container using Xuggler
25 novembre 2015, par HandroidHere is the code I am using
String filenamevideo = videoFilePath;(video.mp4)
String filenameaudio = audioAACFilePath; (audio.aac)
IMediaWriter mWriter = ToolFactory.makeWriter(videoWithAudioFilePath); // output
// file
IContainer containerVideo = IContainer.make();
IContainer containerAudio = IContainer.make();
if (containerVideo.open(filenamevideo, IContainer.Type.READ, null) < 0)
throw new IllegalArgumentException("Cant find " + filenamevideo);
if (containerAudio.open(filenameaudio, IContainer.Type.READ, null) < 0)
throw new IllegalArgumentException("Cant find " + filenameaudio);
int numStreamVideo = containerVideo.getNumStreams();
int numStreamAudio = containerAudio.getNumStreams();
int videostreamt = -1; // this is the video stream id
int audiostreamt = -1;
IStreamCoder videocoder = null;
for (int i = 0; i < numStreamVideo; i++) {
IStream stream = containerVideo.getStream(i);
IStreamCoder code = stream.getStreamCoder();
if (code.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO) {
videostreamt = i;
videocoder = code;
break;
}
}
for (int i = 0; i < numStreamAudio; i++) {
IStream stream = containerAudio.getStream(i);
IStreamCoder code = stream.getStreamCoder();
if (code.getCodecType() == ICodec.Type.CODEC_TYPE_AUDIO) {
audiostreamt = i;
break;
}
}
if (videostreamt == -1)
throw new RuntimeException("No video steam found");
if (audiostreamt == -1)
throw new RuntimeException("No audio steam found");
if (videocoder.open() < 0)
throw new RuntimeException("Cant open video coder");
IPacket packetvideo = IPacket.make();
IStreamCoder audioCoder = containerAudio.getStream(audiostreamt).getStreamCoder();
if (audioCoder.open() < 0)
throw new RuntimeException("Cant open audio coder");
mWriter.addAudioStream(0, 0, ICodec.ID.CODEC_ID_AAC, audioCoder.getChannels(),audioCoder.getSampleRate());
mWriter.addVideoStream(1, 0, ICodec.ID.CODEC_ID_H264, videocoder.getWidth(), videocoder.getHeight());
IPacket packetaudio = IPacket.make();
while (containerVideo.readNextPacket(packetvideo) >= 0 || containerAudio.readNextPacket(packetaudio) >= 0) {
if (packetvideo.getStreamIndex() == videostreamt) {
// video packet
IVideoPicture picture = IVideoPicture.make(videocoder.getPixelType(), videocoder.getWidth(),
videocoder.getHeight());
int offset = 0;
while (offset < packetvideo.getSize()) {
int bytesDecoded = videocoder.decodeVideo(picture, packetvideo, offset);
if (bytesDecoded < 0)
throw new RuntimeException("bytesDecoded not working");
offset += bytesDecoded;
if (picture.isComplete()) {
// System.out.println(picture.getPixelType());
mWriter.encodeVideo(1, picture);
}
}
}
if (packetaudio.getStreamIndex() == audiostreamt) {
// audio packet
IAudioSamples samples = IAudioSamples.make(512, audioCoder.getChannels(), IAudioSamples.Format.FMT_S32);
int offset = 0;
while (offset < packetaudio.getSize()) {
int bytesDecodedaudio = audioCoder.decodeAudio(samples, packetaudio, offset);
if (bytesDecodedaudio < 0)
throw new RuntimeException("could not detect audio");
offset += bytesDecodedaudio;
if (samples.isComplete()) {
mWriter.encodeAudio(0, samples);
}
}
}
}The output file (mp4) is generating , but unable to play it using (vlc) and in JavaFX scene media.
Please help me with the inputs on the above code I’m using it in a correct way (Or) help me with the possible solution for mixing audio(aac) and video(h264) to mp4 container.
Thank in advance.
-
cv2.VideoCapture on python
27 décembre 2015, par pandasarebestI am running the following code :
import numpy as np
import cv2
import os
count = 0
cap = cv2.VideoCapture("/home/simon/PROJECT/real_data/00000020.mp4")
while not cap.isOpened():
cap = cv2.VideoCapture("./00000020.mp4")
cv2.waitKey(1000)
print "Wait for the header"
pos_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)
while True:
flag, frame = cap.read()
if flag:
# The frame is ready and already captured
cv2.imshow('video', frame)
pos_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)
print str(pos_frame)+" frames"
else:
# The next frame is not ready, so we try to read it again
cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, pos_frame-1)
print "frame is not ready"
# It is better to wait for a while for the next frame to be ready
cv2.waitKey(1000)
if cv2.waitKey(10) & 0xFF == 27:
break
if cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES) == cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT):
# If the number of captured frames is equal to the total number of frames,
# we stop
break
if ret == True:
frame = cv2.VideoCapture.grab()
frame = 'frame%d' % count
cv2.imwrite('frame%d.png', frame)
count += 1
else:
print 'stopped at' + count
breakAnd whenever I run it, it loops on the while not loop, printing "wait for header".
There is never an error code or anything like that either.I have tried to run it as a more simple piece of code, where it doesnt have all these checks, and again that doesn’t throw any errors.
I am attempting to run this code to open a video, and then save the frames as png files throughout the video.
Does anyone spot any particular problems with the code ?
Or alternatively does anyone know a piece of code that would do what i want more efficiently, as I have trawled through google searches and stack overflow a lot recently and haven’t found anythingThanks in advance
Panda -
Merging audio(aac) and video (h.264 in mp4 container) into a mp4 container using Xuggler
26 août 2016, par HandroidHere is the code I am using
String filenamevideo = videoFilePath;(video.mp4)
String filenameaudio = audioAACFilePath; (audio.aac)
IMediaWriter mWriter = ToolFactory.makeWriter(videoWithAudioFilePath); // output
// file
IContainer containerVideo = IContainer.make();
IContainer containerAudio = IContainer.make();
if (containerVideo.open(filenamevideo, IContainer.Type.READ, null) < 0)
throw new IllegalArgumentException("Cant find " + filenamevideo);
if (containerAudio.open(filenameaudio, IContainer.Type.READ, null) < 0)
throw new IllegalArgumentException("Cant find " + filenameaudio);
int numStreamVideo = containerVideo.getNumStreams();
int numStreamAudio = containerAudio.getNumStreams();
int videostreamt = -1; // this is the video stream id
int audiostreamt = -1;
IStreamCoder videocoder = null;
for (int i = 0; i < numStreamVideo; i++) {
IStream stream = containerVideo.getStream(i);
IStreamCoder code = stream.getStreamCoder();
if (code.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO) {
videostreamt = i;
videocoder = code;
break;
}
}
for (int i = 0; i < numStreamAudio; i++) {
IStream stream = containerAudio.getStream(i);
IStreamCoder code = stream.getStreamCoder();
if (code.getCodecType() == ICodec.Type.CODEC_TYPE_AUDIO) {
audiostreamt = i;
break;
}
}
if (videostreamt == -1)
throw new RuntimeException("No video steam found");
if (audiostreamt == -1)
throw new RuntimeException("No audio steam found");
if (videocoder.open() < 0)
throw new RuntimeException("Cant open video coder");
IPacket packetvideo = IPacket.make();
IStreamCoder audioCoder = containerAudio.getStream(audiostreamt).getStreamCoder();
if (audioCoder.open() < 0)
throw new RuntimeException("Cant open audio coder");
mWriter.addAudioStream(0, 0, ICodec.ID.CODEC_ID_AAC, audioCoder.getChannels(),audioCoder.getSampleRate());
mWriter.addVideoStream(1, 0, ICodec.ID.CODEC_ID_H264, videocoder.getWidth(), videocoder.getHeight());
IPacket packetaudio = IPacket.make();
while (containerVideo.readNextPacket(packetvideo) >= 0 || containerAudio.readNextPacket(packetaudio) >= 0) {
if (packetvideo.getStreamIndex() == videostreamt) {
// video packet
IVideoPicture picture = IVideoPicture.make(videocoder.getPixelType(), videocoder.getWidth(),
videocoder.getHeight());
int offset = 0;
while (offset < packetvideo.getSize()) {
int bytesDecoded = videocoder.decodeVideo(picture, packetvideo, offset);
if (bytesDecoded < 0)
throw new RuntimeException("bytesDecoded not working");
offset += bytesDecoded;
if (picture.isComplete()) {
// System.out.println(picture.getPixelType());
mWriter.encodeVideo(1, picture);
}
}
}
if (packetaudio.getStreamIndex() == audiostreamt) {
// audio packet
IAudioSamples samples = IAudioSamples.make(512, audioCoder.getChannels(), IAudioSamples.Format.FMT_S32);
int offset = 0;
while (offset < packetaudio.getSize()) {
int bytesDecodedaudio = audioCoder.decodeAudio(samples, packetaudio, offset);
if (bytesDecodedaudio < 0)
throw new RuntimeException("could not detect audio");
offset += bytesDecodedaudio;
if (samples.isComplete()) {
mWriter.encodeAudio(0, samples);
}
}
}
}The output file (mp4) is generating , but unable to play it using (vlc) and in JavaFX scene media.
Please help me with the inputs on the above code I’m using it in a correct way (Or) help me with the possible solution for merging audio(aac) and video(h264) to mp4 container.
Thank in advance.