
Recherche avancée
Médias (91)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
-
Les Miserables
4 juin 2012, par
Mis à jour : Février 2013
Langue : English
Type : Texte
-
Ne pas afficher certaines informations : page d’accueil
23 novembre 2011, par
Mis à jour : Novembre 2011
Langue : français
Type : Image
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
-
Richard Stallman et la révolution du logiciel libre - Une biographie autorisée (version epub)
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (97)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (11732)
-
FFmpegFrameGrabber and FFmpegFrameRecorder Audio Issue
20 août 2015, par Sheheryar ChaganiI am compress an existing camera recorded video using FFmpegframerecorder and ffmpegFrameGrabber.
The issue is that its audio is not occurring after compression.
Please note that I am using googlecode.javacv along with javacpp and armeabi in lib folder.
Below is the code which I have used.
public void compressVideo(String filePath)
FrameGrabber grabber = new FFmpegFrameGrabber(filePath);
grabber.start();
fileoutput = filePath.replace("trimmed", "compressed");
// recorder.setAudioCodec(grabber.get);
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(fileoutput, 480,
480, grabber.getAudioChannels());
recorder.setFrameRate(grabber.getFrameRate());
recorder.setSampleRate(grabber.getSampleRate());
recorder.setSampleFormat(grabber.getSampleFormat());
recorder.setFormat(grabber.getFormat());
// recorder.setPixelFormat(grabber.getPixelFormat());
recorder.start();
Frame frame;
int count = 0;
while ((frame = grabber.grabFrame()) != null) {
if (frame.image != null) {
publishProgress(count);
count++;
IplImage rotateImage = rotate(frame.image, 90);
IplImage cropImage = resizeImage(rotateImage, 480, 480, true);
frame.image = cropImage;
recorder.record(frame);
if (rotateImage != null)
opencv_core.cvReleaseImage(rotateImage);
if (cropImage != null)
opencv_core.cvReleaseImage(cropImage);
} else {
recorder.record(frame);
}
}
recorder.stop();
grabber.stop();
recorder.release();
grabber.release();
}
IplImage resizeImage(IplImage origImg, int newWidth, int newHeight,
boolean keepAspectRatio) {
IplImage outImg;
int origWidth = 0;
int origHeight = 0;
if (origImg != null) {
origWidth = origImg.width();
origHeight = origImg.height();
}
if (newWidth <= 0 || newHeight <= 0 || origImg == null
|| origWidth <= 0 || origHeight <= 0) {
// cerr << "ERROR: Bad desired image size of " << newWidth
// << "x" << newHeight << " in resizeImage().\n";
return null;
}
if (keepAspectRatio) {
// Resize the image without changing its aspect ratio,
// by cropping off the edges and enlarging the middle section.
CvRect r;
// input aspect ratio
float origAspect = (origWidth / (float) origHeight);
// output aspect ratio
float newAspect = (newWidth / (float) newHeight);
// crop width to be origHeight * newAspect
if (origAspect > newAspect) {
int tw = (origHeight * newWidth) / newHeight;
// System.out.println((origWidth - tw) / 2+" "+)
r = opencv_core.cvRect((origWidth - tw) / 2, 0, tw, origHeight);
} else { // crop height to be origWidth / newAspect
int th = (origWidth * newHeight) / newWidth;
r = opencv_core.cvRect(0, (origHeight - th) / 2, origWidth, th);
}
IplImage croppedImg = cropImage(origImg, r);
// Call this function again, with the new aspect ratio image.
// Will do a scaled image resize with the correct aspect ratio.
outImg = resizeImage(croppedImg, newWidth, newHeight, false);
opencv_core.cvReleaseImage(croppedImg);
} else {
// Scale the image to the new dimensions,
// even if the aspect ratio will be changed.
outImg = opencv_core.cvCreateImage(
opencv_core.cvSize(newWidth, newHeight), origImg.depth(),
origImg.nChannels());
if (newWidth > origImg.width() && newHeight > origImg.height()) {
// Make the image larger
opencv_core.cvResetImageROI((IplImage) origImg);
// CV_INTER_LINEAR: good at enlarging.
// CV_INTER_CUBIC: good at enlarging.
cvResize(origImg, outImg, CV_INTER_LINEAR);
} else {
// Make the image smaller
opencv_core.cvResetImageROI((IplImage) origImg);
// CV_INTER_AREA: good at shrinking (decimation) only.
cvResize(origImg, outImg, CV_INTER_AREA);
}
}
return outImg;
}
// Returns a new image that is a cropped version (rectangular cut-out)
// of the original image.
IplImage cropImage(IplImage img, CvRect region) {
IplImage imageCropped;
opencv_core.CvSize size = new CvSize();
if (img.width() <= 0 || img.height() <= 0 || region.width() <= 0
|| region.height() <= 0) {
// cerr << "ERROR in cropImage(): invalid dimensions." << endl;
return null;
}
if (img.depth() != opencv_core.IPL_DEPTH_8U) {
// cerr << "ERROR in cropImage(): image depth is not 8." << endl;
return null;
}
// Set the desired region of interest.
opencv_core.cvSetImageROI((IplImage) img, region);
// Copy region of interest into a new iplImage and return it.
size.width(region.width());
size.height(region.height());
imageCropped = opencv_core.cvCreateImage(size,
opencv_core.IPL_DEPTH_8U, img.nChannels());
opencv_core.cvCopy(img, imageCropped); // Copy just the region.
return imageCropped;
}
public IplImage rotate(IplImage image, double angle) {
IplImage copy = opencv_core.cvCloneImage(image);
IplImage rotatedImage = opencv_core.cvCreateImage(
opencv_core.cvGetSize(copy), copy.depth(), copy.nChannels());
CvMat mapMatrix = opencv_core.cvCreateMat(2, 3, opencv_core.CV_32FC1);
// Define Mid Point
CvPoint2D32f centerPoint = new CvPoint2D32f();
centerPoint.x(copy.width() / 2);
centerPoint.y(copy.height() / 2);
// Get Rotational Matrix
opencv_imgproc.cv2DRotationMatrix(centerPoint, angle, 1.0, mapMatrix);
// Rotate the Image
opencv_imgproc.cvWarpAffine(copy, rotatedImage, mapMatrix,
opencv_imgproc.CV_INTER_CUBIC
+ opencv_imgproc.CV_WARP_FILL_OUTLIERS,
opencv_core.cvScalarAll(170));
opencv_core.cvReleaseImage(copy);
opencv_core.cvReleaseMat(mapMatrix);
return rotatedImage;
}I am rotating the video frame and then resizing the frame image.
The code was working fine 3 days ago but not suddenly it started messing up.
-
Does anyone know any filters for better low quality video ?
7 septembre 2022, par kastenSo maybe my question can be closed, but anyway I'm researching and looking for a tool that can do the following with video files :


Here's an example of what I want :


When you put a low quality video on your TV and look into a mirror that reflects that image, it appears to be sharper, acting as a filter to improve the video.


I don't know if anyone has thought of this fact or if there is a software that does something similar. I know low quality video can't get any better, but why is there an improvement when looking in the mirror ?


I appreciate if anyone can comment, as I'm not a professional in video.


-
Real time livestreaming - RPI FFmpeg and H5 Player
29 avril 2022, par VictorI work at a telehealth company and we are using connected medical devices in order to provide the doctor with real time information from these equipements, the equipements are used by a trained health Professional.


Those devices work with video and audio. Right now, we are using them with peerjs (so peer to peer connection) but we are trying to move away from that and have a RPI with his only job to stream data (so streaming audio and video).


Because the equipements are supposed to be used with instructions from a doctor we need the doctor to receive the data in real time.


But we also need the trained health professional to see what he is doing (so we need a local feed from the equipement)


How do we capture audio and video


We are using ffmpeg with a go client that is in charge of managing the ffmpeg clients and stream them to a SRS server.
This works but we are having a 2-3 sec delay when streaming the data. (rtmp from ffmpeg and flv on the front end)


ffmpeg settings :


("ffmpeg", "-f", "v4l2", `-i`, "*/video0", "-f", "flv", "-vcodec", "libx264", "-x264opts", "keyint=15", "-preset", "ultrafast", "-tune", "zerolatency", "-fflags", "nobuffer", "-b:a", "160k", "-threads", "0", "-g", "0", "rtmp://srs-url")



My questions


- 

- Is there a way for this set up to achieve low latency (<1 sec) (for the nurse and for the doctor) ?
- Is the way I want to achieve this good ? Is there a batter way ?






Flow schema


Data exchange and use case flow :






Note : The nurse and doctor use
HTTP-FLV
to play the live stream, for low latency.