
Recherche avancée
Médias (1)
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
Autres articles (62)
-
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 -
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 -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (10154)
-
Portable YUV Drawing Context
1er juin 2017, par Leif AndersenI have a stream of YUV data (from a video file) that I want to stream to a screen in real time. (Basically, I want to write a program that plays the video in real time.)
As such, I am looking for a portable way to send YUV data to the screen. I would ideally like to use something portable so I don’t have to reimplement it for every major platform.
I have found a few options, but all of them seem to have significant issues. They are :
- Use OpenGL directly, converting the YUV data to RGB. (And using the single quad for the whole screen trick.)
This obviously won’t work because converting RGB to YUV on the CPU is going to be too slow for displaying images in real time.
- Use OpenGL, but use a shader to convert the YUV stream to RGB.
This option is a bit better. Although the problem here is that (afaict), this will involve making two streams and splicing them together. It might work, but may have issues with larger resolutions.
- Instead use SDL, which has the option of creating a YUV context directly.
The problem with this is I already am using a cross platform widget library for other aspects of my program (such as playback controls). As far as I can tell, SDL only opens up in its on (possibly borderless) window. I would ideally like my controls and drawing context to be in the same window. Which I can do with opengl, but not SDL.
- Use SDL, and also use something like Qt for the on screen widgets, use a message passing protocol to communicate between the two libraries. Have the (borderless) SDL window constantly move itself on top of the opengl window.
While this approach is clever, it seems like the two windows could get out of sink easily making the user experience sub-optimal.
- Forget a cross platform library, do thinks OS specific, making use of hardware acceleration if present.
This is a fine solution although its not cross platform.
As such, is there any good way to draw YUV data to a screen that ideally is :
- Portable (at least to the major platforms).
- Fast enough to be real time.
- Allows other widgets in the same window.
-
ffmpeg video conversion creates empty file when using php's exec()
23 juillet 2014, par Rob Avery IVWhen I run
ffmpeg
with PHP’sexec()
function to convert a video to flv, the flv file ends up empty. Here is the code I have that does the conversion :// Set our source file
$srcFile = "/path/to/file/".$filename."mp4";
$destFile = "/path/to/file/".$filename;
$ffmpegPath = "ffmpeg";
// Create our FFMPEG-PHP class
$ffmpegObj = new ffmpeg_movie($srcFile);
// Save our needed variables
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
$srcFPS = $ffmpegObj->getFrameRate();
$srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
$srcAR = $ffmpegObj->getAudioSampleRate();
// Call our convert using exec()
$command = $ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . "k -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile . "> /dev/null 2>/dev/null &";
exec($command);Before I execute the code above, I have an mp4 file this is uploaded which is the one mentioned in the variable
$srcFile
. when uploaded, that file is not empty and I am to use it like a normal video file.Afterwards, there will be both
filename.mp4
andfilename
(formated toflv
video. yes, I’ve tried giving it an .flv extension and nothing different happens) files.filename
ends up empty. To make sure it’s running the right command, I did anvar_dump($command)
to see the command that was actually running. I got this result :ffmpeg -i /path/to/file/filename.mp4 -ar 44100 -ab 70k -f flv -s 640x480 /path/to/file/filename
I then run
exec()
function like this$output = "";
exec($command, $output);
var_dump($output);and like this
$output = exec($command);
var_dump($output);Both times,
$output
is presented as an empty array. Then, I run theffmpeg
command mentioned above through command line. And it worked. It created the flv file and it wasn’t empty and I was able to use as a regular video file with no problems.I also tried adding
> /dev/null 2>/dev/null &
at the end of the command and it still didn’t work.To sum up, so far, when
ffmpeg
is used to convert videos with php’sexec()
, it creates the converted as an empty. Though, if I was to take the same command used withexec()
and use it through command line, it works perfectly fine.I’m stumped. I’ve been tackling this for days and haven’t really gotten anywhere. Where I going wrong ? Is there a different or better way of doing this ? Am I missing something ?
-
How can I use ffmpeg to download an m3u8 with multiple audio tracks ?
4 septembre 2018, par casolorzI want to download an m3u8 with multiple audio tracks but when I use ffmpeg to do it the file ends up with just one audio track. What switches do I need on ffmpeg to get all the audio tracks that are on the m3u8 manifest ?
This is the command I used :
ffmpeg -i https://domain/path_to_m3u8 -c copy multitrack.mp4
Thanks.