
Recherche avancée
Autres articles (55)
-
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 -
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
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 (6422)
-
Store converted video in a buffer to transfer to S3
24 mai 2012, par ChrisI have a system set up to upload an image, take that temporarily uploaded file, convert it to a resized jpeg, read the buffer of that conversion and send the buffer to amazon S3 for storage as an image. It works wonderfully because no permanent file is stored on the my server, everything is on S3.
Now I am attempting to add this same functionality but with video. The process goes through, but the resulting files stored on Amazons S3 servers are 1.5kb a piece, instead of multimb videos.
My code is as follows :
public function transfer($method, $file, $bucketName, $filename, $contentType){
switch($method){
case 'file':
if($this->s3->putObject($this->s3->inputFile($file, false), $bucketName, $filename, S3::ACL_PUBLIC_READ, array(), $contentType))
return true;
else
return false;
break;
case 'string':
if ($this->s3->putObject($file, $bucketName, $filename, S3::ACL_PUBLIC_READ, array(), $contentType))
return true;
else
return false;
break;
case 'resource':
if($this->s3->putObject($this->s3->inputResource(fopen($file, 'rb'), filesize($file)), $bucketName, $filename, S3::ACL_PUBLIC_READ, array(), $contentType))
return true;
else
return false;
break;
}
return false;
}
/**
* AmazonS3Handler - convert()
*/
public function convert($file, $type)
{
$ffmpeg = "/usr/bin/ffmpeg";
$cmd['webm'] = $ffmpeg. " -i ". $file ." -vcodec libvpx -acodec libvorbis -ac 2 -f webm -g 30 2>&1";
$cmd['ogv'] = $ffmpeg. " -i ". $file ." -vcodec libtheora -acodec libvorbis -ac 2 2>&1";
$cmd['mp4'] = $ffmpeg. " -i ". $file ." -vcodec libx264 -acodec libfaac -ac 2 2>&1";
$cmd['jpg'] = $ffmpeg. " -i ". $file ." -vframes 30";
ob_start();
passthru($cmd[$type]);
$fileContents = ob_get_contents();
ob_end_clean();
return $fileContents;
}From my understanding, passthru should return raw output which could be picked up by the output buffer.
Am I doing something wrong ? Is there a better way to convert a video on my servers but keep the data on S3 ?
Thanks !
EDIT : I've boiled it down to the executing of the command. FFMPEG wasn't being located, so I changed the path to "/usr/bin/ffmpeg", no more error 127, now when I run exec() (not passthru) I get error 1
EDIT2 : Here is the output of running the script :
Array
(
[0] => ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers
[1] => built on Jan 4 2012 16:08:51 with gcc 4.6.1
[2] => configuration: --extra-version='4:0.7.3-0ubuntu0.11.10.1' --arch=amd64 --prefix=/usr --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
[3] => libavutil 51. 7. 0 / 51. 7. 0
[4] => libavcodec 53. 6. 0 / 53. 6. 0
[5] => libavformat 53. 3. 0 / 53. 3. 0
[6] => libavdevice 53. 0. 0 / 53. 0. 0
[7] => libavfilter 2. 4. 0 / 2. 4. 0
[8] => libswscale 2. 0. 0 / 2. 0. 0
[9] => libpostproc 52. 0. 0 / 52. 0. 0
[10] =>
[11] => Seems stream 1 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 30.30 (1000/33)
[12] => Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'iv.m4v':
[13] => Metadata:
[14] => major_brand : M4V
[15] => minor_version : 1
[16] => compatible_brands: M4V M4A mp42isom
[17] => creation_time : 2012-01-23 04:00:18
[18] => encoder : Mac OS X v10.7.2 (CMA 889, CM 705.42, x86_64)
[19] => Duration: 00:00:11.70, start: 0.000000, bitrate: 345 kb/s
[20] => Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 125 kb/s
[21] => Metadata:
[22] => creation_time : 2012-01-23 04:00:18
[23] => Stream #0.1(und): Video: h264 (Main), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 206 kb/s, 30.30 fps, 30.30 tbr, 1k tbn, 2k tbc
[24] => Metadata:
[25] => creation_time : 2012-01-23 04:00:18
[26] => iv.webm: Permission denied
)It looks like the permissions aren't set right, however the file has chmod 777 permissions. What other permissions need to get changed ?
-
use java-ffmpeg wrapper, or simply use java runtime to execute ffmpeg ?
12 mars 2017, par user156153I’m pretty new to Java, need to write a program that listen to video conversion instructions and convert the video once an new instruction arrives (instructions is stored in Amazon SQS, but it’s irrelevant to my question)
I’m facing a choice, either use Java RunTime to exec ’ffmpeg’ conversion (like from command line), or I can use a ffmpeg wrapper written inJava http://fmj-sf.net/ffmpeg-java/getting_started.php
I’d much prefer using Java Runtime to exec ffmpeg directly, and avoid using java-ffmpeg wrapper as I have to learn the library. so my question is are there any benefits using java-ffmpeg wrapper over exec ffmpeg directly using Runtime ? I don’t need ffmpeg to play videos, just convert videos
Thanks
-
Building my JAVA parameter array for FFMPEG
29 janvier 2016, par user3541092FFmpeg Version : N-63893-gc69defd Copyright (c) 2000-2014 the FFmpeg developers
built on Jul 16 2014 05:38:01 with gcc 4.6 (Debian 4.6.3-1)Machine : Amazon Linux t2.micro (free tier)
Sample File : sample_iTunes.mov
Sample File URL : https://support.apple.com/en-us/HT201549I’m trying to replicate the following FFmpeg command, using a string array and then pass this array into the Runtime.getRuntime().exec().
ffmpeg -i file:/var/local/ffmpegtest/media_input/sample_iTunes.mov -pix_fmt yuv420p -c:v libx264 -vtag mp42 -metadata major_brand="mp42" -b:v 8000k -minrate 8000k -maxrate 10000k -ac 2 -strict experimental -c:a aac -b:a 256k -metadata:s:a:0 handler="Stereo" /var/local/ffmpegtest/media_output/sample_iTunes.mp4 -y
NOTE : This works when I pass the full command, as a single string into Runtime.getRuntime().exec().
String _cmd = "ffmpeg -i %s -pix_fmt yuv420p -c:v libx264 -vtag mp42 -metadata major_brand=\"mp42\" "
+ "-b:v 8000k -minrate 8000k -maxrate 10000k -ac 2 -strict experimental -c:a aac -b:a 256k -metadata:s:a:0 handler=\"Stereo\" %s -y";
String _ffmpegCommand = String.format(_cmd, _inputFile, _outPutFile);
p = Runtime.getRuntime().exec(_ffmpegCommand);
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}I started out with just a basic parameter list. As I add add each additional parameter, I re-build the JAR file and upload it to my EC2 instance to test for any errors.
The following string array works :
try
{
String[] _params = {"ffmpeg",
"-i",
String.format("%s", _inputFile),
"-pix_fmt",
"yuv420p",
"-c:v",
"libx264",
String.format("%s", _outPutFile),
"-y"};
p = Runtime.getRuntime().exec(_params);
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}
catch (Exception e) {
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}However, when I continue to build the array with additional parameters, I begin to experience problems (lets add -vtag mp42) :
try
{
String[] _params = {"ffmpeg",
"-i",
String.format("%s", _inputFile),
"-pix_fmt",
"yuv420p",
"-c:v",
"libx264",
"-vtag", // <---- New
"mp42", // <--- New
String.format("%s", _outPutFile),
"-y"};
p = Runtime.getRuntime().exec(_params);
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}
catch (Exception e) {
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}Error Message : Could not write header for output file #0 (incorrect codec parameters ?) : Invalid data found when processing input
Full Log output for errant trail run :
29 Jan 2016 03:45:09 UTC - Running FFMpeg...
29 Jan 2016 03:45:09 UTC - Input file: /var/local/ffmpegtest/media_input/sample_iTunes.mov
29 Jan 2016 03:45:09 UTC - Output file: /var/local/ffmpegtest/media_output/sample_iTunes.mp4
29 Jan 2016 03:45:09 UTC - ffmpeg version N-63893-gc69defd Copyright (c) 2000-2014 the FFmpeg developers
29 Jan 2016 03:45:09 UTC - built on Jul 16 2014 05:38:01 with gcc 4.6 (Debian 4.6.3-1)
29 Jan 2016 03:45:09 UTC - configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
29 Jan 2016 03:45:09 UTC - libavutil 52. 89.100 / 52. 89.100
29 Jan 2016 03:45:09 UTC - libavcodec 55. 66.101 / 55. 66.101
29 Jan 2016 03:45:09 UTC - libavformat 55. 43.100 / 55. 43.100
29 Jan 2016 03:45:09 UTC - libavdevice 55. 13.101 / 55. 13.101
29 Jan 2016 03:45:09 UTC - libavfilter 4. 8.100 / 4. 8.100
29 Jan 2016 03:45:09 UTC - libswscale 2. 6.100 / 2. 6.100
29 Jan 2016 03:45:09 UTC - libswresample 0. 19.100 / 0. 19.100
29 Jan 2016 03:45:09 UTC - libpostproc 52. 3.100 / 52. 3.100
29 Jan 2016 03:45:09 UTC - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/local/ffmpegtest/media_input/sample_iTunes.mov':
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - major_brand : qt
29 Jan 2016 03:45:09 UTC - minor_version : 537199360
29 Jan 2016 03:45:09 UTC - compatible_brands: qt
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:32
29 Jan 2016 03:45:09 UTC - Duration: 00:01:25.50, start: 0.000000, bitrate: 307 kb/s
29 Jan 2016 03:45:09 UTC - Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 261 kb/s, 10 fps, 10 tbr, 3k tbn, 25 tbc (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:33
29 Jan 2016 03:45:09 UTC - handler_name : Apple Video Media Handler
29 Jan 2016 03:45:09 UTC - encoder : 3ivx D4 4.5.1
29 Jan 2016 03:45:09 UTC - Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 43 kb/s (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:34
29 Jan 2016 03:45:09 UTC - handler_name : Apple Sound Media Handler
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] using SAR=1/1
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX AVX2 FMA3 BMI1 BMI2
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] profile High, level 2.2
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
29 Jan 2016 03:45:09 UTC - [mp4 @ 0x30c21a0] Tag mp42/0x3234706d incompatible with output codec id '28' ([33][0][0][0])
29 Jan 2016 03:45:09 UTC - Output #0, mp4, to '/var/local/ffmpegtest/media_output/sample_iTunes.mp4':
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - major_brand : qt
29 Jan 2016 03:45:09 UTC - minor_version : 537199360
29 Jan 2016 03:45:09 UTC - compatible_brands: qt
29 Jan 2016 03:45:09 UTC - Stream #0:0(eng): Video: h264 (libx264) (mp42 / 0x3234706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 10 fps, 90k tbn, 10 tbc (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:33
29 Jan 2016 03:45:09 UTC - handler_name : Apple Video Media Handler
29 Jan 2016 03:45:09 UTC - encoder : Lavc55.66.101 libx264
29 Jan 2016 03:45:09 UTC - Stream #0:1(eng): Audio: aac (libvo_aacenc), 32000 Hz, mono, s16, 128 kb/s (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:34
29 Jan 2016 03:45:09 UTC - handler_name : Apple Sound Media Handler
29 Jan 2016 03:45:09 UTC - encoder : Lavc55.66.101 libvo_aacenc
29 Jan 2016 03:45:09 UTC - Stream mapping:
29 Jan 2016 03:45:09 UTC - Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
29 Jan 2016 03:45:09 UTC - Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
29 Jan 2016 03:45:09 UTC - Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input