
Recherche avancée
Médias (3)
-
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
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (41)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Les statuts des instances de mutualisation
13 mars 2010, parPour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...) -
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 (6344)
-
How to stream video form device to ingestion server using nodejs
28 juillet 2021, par rockyI'm building a live streaming app (one-to-many) and am using AWS IVS as my ingestion server.


Now, I get the video feed from
mediaRecorder
api transmits the video using socket.io as a buffer. Now the challenge is to parse the real-time buffers to AWS IVS or any other ingestion server.

I figured that the only way to stream the video is by using
ffmpeg
and that's where am completely stuck.

Here is my code


// ffmpeg config
const { spawn, exec } = require("child_process");

let ffstr = `-re -stream_loop -1 -i ${input} -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://${INGEST_ENDPOINT}:443/app/${STREAM_KEY}`;

let ffmpeg = spawn("ffmpeg", ffstr.split(" "));

// Socket.io
socket.on("binarystream", async (mBuffer) => {
 // TODO: Get the buffer
 // TODO: Ingest/convert to mp4
 // TODO: Stream to IVS

 // TODO: FFMpeg is your best bet
 // console.log(mBuffer);

 ffmpeg.stdin.write(mBuffer);
 
 });



PS : Even if you don't have the direct answers I'm available for discussion


-
Trying to identify global metadata
29 mai 2021, par the_steve_randolphI am pretty new to ffmpeg and using it to convert/change a large number of video files. I typically use VLC to find out some (all ?) of the information that I am interested in changing. But, one piece of information I can't seem to identify.


I know that within a video file, each audio and video track have titles that I can change with ffmpeg. Also, I know that I can change the metadata tag "title" that would seem to encompass the entire file. This "title" value is displayed on the top line in VLC and displays in Windows Explorer in the "Title" column. This seems to be the same tag when you right-click on the file, click the "Details" tab, and, look at the "Title" tag under "Description".


But, in some video files, in VLC I click on "Playback" and then "Title", there is different "title" information. Most of the time it is blank, but, other times there is one or two names that indicates it came from the "title" information of a DVD. That is, a DVD that has multiple titles (different/separate movies on the same disc). Well, I want to erase or change that "title" information, but, I cannot seem to determine where/how in ffmpeg to access it. This information is not shown with the "ffmpeg -i file.mp4" or "ffprobe -1 file.mp4".


Since this "title" information is not directly related to a specific video track, I am assuming that it fits under the category of "global" metadata. Googling "ffmpeg global metadata tags", I can find some of the tags I typically change (i.e "frame height" and "frame width"), as well as the "title" that is the Windows Explorer "title" column. But, none of those search results mention this other "title" information/tag, or, that a DVD can have multiple titles that show up when converted to a MP4/MKV and viewed it in VLC.


So, WTH is that tag name and is it something that ffmpeg can see and/or change ?


-
Conditional formats in Laravel FFMPEG
29 décembre 2020, par JJ The SecondI'm currently using Laravel FFMPEG in a Laravel project and running followings which works well https://github.com/protonemedia/laravel-ffmpeg


Here is an example of code that is working :


$lowBitrate = (new X264)->setKiloBitrate(250);
 $midBitrate = (new X264)->setKiloBitrate(500);
 $highBitrate = (new X264)->setKiloBitrate(1000);
 $superBitrate = (new X264)->setKiloBitrate(1500);

 FFMpeg::open('steve_howe.mp4')
 ->exportForHLS()
 ->addFormat($lowBitrate, function($media) {
 $media->addFilter('scale=640:480');
 })

 ->addFormat($midBitrate, function($media) {
 $media->scale(960, 720);
 })
 ->addFormat($highBitrate, function ($media) {
 $media->addFilter(function ($filters, $in, $out) {
 $filters->custom($in, 'scale=1920:1200', $out); // $in, $parameters, $out
 });
 })
 ->addFormat($superBitrate, function($media) {
 $media->addLegacyFilter(function ($filters) {
 $filters->resize(new \FFMpeg\Coordinate\Dimension(2560, 1920));
 });
 })
 ->save('adaptive_steve.m3u8');



Now, my challenge is that on client side, my users need to select what formats they'd like to include in transcoding job and one job may contain 2 bitrate variation or more so there is a need to have a conditional statement before calling ->addFromat()


Ideally I'd need to approach this :


$lowBitrate = (new X264)->setKiloBitrate(250);
 $midBitrate = (new X264)->setKiloBitrate(500);
 $highBitrate = (new X264)->setKiloBitrate(1000);
 $superBitrate = (new X264)->setKiloBitrate(1500);

 FFMpeg::open('steve_howe.mp4')
 ->exportForHLS()
 ->addFormat($lowBitrate, function($media) {
 $media->addFilter('scale=640:480');
 })
 /// adding if statement here
 ->addFormat($midBitrate, function($media) {
 $media->scale(960, 720);
 })
 ->addFormat($highBitrate, function ($media) {
 $media->addFilter(function ($filters, $in, $out) {
 $filters->custom($in, 'scale=1920:1200', $out); // $in, $parameters, $out
 });
 })
 ->addFormat($superBitrate, function($media) {
 $media->addLegacyFilter(function ($filters) {
 $filters->resize(new \FFMpeg\Coordinate\Dimension(2560, 1920));
 });
 })
 ->save('adaptive_steve.m3u8');



No idea how to add a if/else statement here. How do you think I should approach this ?


Thanks