
Recherche avancée
Médias (1)
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (70)
-
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...) -
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 -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...)
Sur d’autres sites (8830)
-
Encoding of video returns 0, and nothing written to the output file
14 juillet 2014, par AnilJI have written a code to record the webcam feed into a file on disk. I am attempting to do this using IContainer class rather than IMediaWriter class. I am pasting the code snippet below showing important sections of the code.
The problem I am facing is that nothing is being written to the file. Some of the observations I have made are as follows :
- In the Record() function, the ’while’ loop is kicked off, but the mVideoEncoder.encodeVideo(packet, frame, offset) ; method always returns zero (0). This results in no picture complete and no data is being written to the output file. Can you please provide clue as to what is missing ?
- I checked that the frame size is 80640, which confirms that frame has data.
- I see that only header and trailer is being written to the file.
Let me know if you need any other information.
public class WebcamRecorder {
private boolean StartVideoEncoder() {
boolean result = true;
// Open a container
mPositionInMicroseconds = 0;
mOutputContainer = IContainer.make();
mOutputContainer.open(mOutputFileName, IContainer.Type.WRITE, null);
// Create the video stream and get its coder
ICodec videoCodec = ICodec.findEncodingCodec(ICodec.ID.CODEC_ID_H264);
IStream videoStream = mOutputContainer.addNewStream(videoCodec);
mVideoEncoder = videoStream.getStreamCoder();
// Setup the stream coder
mFrameRate = IRational.make(1, 30);
mVideoEncoder.setWidth(Constants.RESAMPLE_PICT_WIDTH);
mVideoEncoder.setHeight(Constants.RESAMPLE_PICT_HEIGHT);
mVideoEncoder.setFrameRate(mFrameRate);
mVideoEncoder.setTimeBase(IRational.make(mFrameRate.getDenominator(),
mFrameRate.getNumerator()));
mVideoEncoder.setBitRate(350000);
mVideoEncoder.setNumPicturesInGroupOfPictures(30);
mVideoEncoder.setPixelType(IPixelFormat.Type.YUV420P);
mVideoEncoder.setFlag(IStreamCoder.Flags.FLAG_QSCALE, true);
mVideoEncoder.setGlobalQuality(0);
// Open the encoder
mVideoEncoder.open(null, null);
// Write the header
mOutputContainer.writeHeader();
return result;
}
public void Record() {
picture = GetNextPicture();
image = Utils.videoPictureToImage(picture);
// convert to the right image type
BufferedImage bgrScreen = ConvertToType(image, BufferedImage.TYPE_3BYTE_BGR);
IConverter converter = ConverterFactory.createConverter(bgrScreen, mVideoEncoder.getPixelType());
IVideoPicture frame = converter.toPicture(bgrScreen, mPositionInMicroseconds);
frame.setQuality(0);
IPacket packet = IPacket.make();
int offset = 0;
while (offset < frame.getSize()) {
int bytesEncoded = mVideoEncoder.encodeVideo(packet, frame, offset);
if (bytesEncoded < 0) {
throw new RuntimeException("Unable to encode video.");
}
offset += bytesEncoded;
if (packet.isComplete()) {
System.out.println("Packet is complete");
if (mOutputContainer.writePacket(packet) < 0) {
throw new RuntimeException(
"Could not write packet to container.");
}
// Update frame time
mPositionInMicroseconds += (mFrameRate.getDouble() * Math.pow(1000, 2));
break;
}
}
}
public void Cleanup() {
if (mOutputContainer != null) {
mOutputContainer.writeTrailer();
mOutputContainer.close();
// mOutputContainer.flushPackets();
}
if (mVideoEncoder != null) {
mVideoEncoder.close();
}
}
} -
Invoking ffmpeg command line from C#
17 juillet 2014, par hydeI have a bunch of images in a directory that I want to make a video out of.
For example the images could have the following path :
C:\dirpath with spaces\a.tiff
C:\dirpath with spaces\b.tif
C:\dirpath with spaces\c.tif
...
C:\dirpath with spaces\zzz.tif
(the file names themselves do not have a pattern)
And ffmpeg is invoked in the server (ASP.Net WebAPI) when a user submits a query.
Right now I am having a hard time getting it to work because part of the problem might be how I am passing the file names to ffmpeg.
The command I am using is :
ffmpeg -y -pix_fmt rgb24 -s 640x540 -framerate 24 -i "C:\dirpath with spaces\a.tif" "C:\dirpath with spaces\b.tif" "C:\dirpath with spaces\c.tif" ... "C:\dirpath with spaces\zzz.tif" -an out.mp4
The problem is that the resulting video is 0 seconds long and ffmpeg does not throw any error.
My question is, is how do I make this work while working with a set of images using their full path, maybe using a wrapper library around it ?
-
Symfony PHP-FFMPEG (pulse00/ffmpeg-bundle) doesn't work
8 juillet 2014, par harisK92I installed pulse00/ffmpeg-bundle
and set it up like in documentation
dubture_f_fmpeg:
ffmpeg_binary: C:\FFMPEG\bin\ffmpeg
ffprobe_binary: C:\FFMPEG\bin\ffprobeBut I got errors
Unable to load FFProbe
..\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\Driver\FFProbeDriver.php at line 50
try {
} return static::load($binaries, $logger, $configuration);
catch (BinaryDriverExecutableNotFound $e) {
throw new ExecutableNotFoundException('Unable to load FFProbe', $e->getCode(), $e);
}
}When I add .exe
dubture_f_fmpeg:
ffmpeg_binary: C:\FFMPEG\bin\ffmpeg.exe
ffprobe_binary: C:\FFMPEG\bin\ffprobe.exe
Unable to probe C:\Users\XXX\XXX\ProjectFolder\src\vendor\Bundle\Entity/../../../../web/uploads/videos/e4cbef010c42d819fd6c326011fb2434c4b43c68.mp4Code in my controller
private function getThumbnail(Video $videoObject)
{
$ffmpeg=$this->getFFMPEG();
$video=$ffmpeg->open($videoObject->getAbsolutePath());
$video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
->save($videoObject->getImagesUploadDir().'/'."image.jpg");
}