
Recherche avancée
Autres articles (112)
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
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 (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...)
Sur d’autres sites (9999)
-
How to set the length metadata property with fluent-ffmpeg ?
8 avril 2024, par volume oneI have transcoded a sample video using
fluent-ffpmeg
and want to set thelength
metadata property so that the<video></video>
player knows how long the video is going to be.

To get the duration of the video I did this :


import ffmpeg from 'fluent-ffmpeg';

function ffprobePromise() {
 return new Promise((resolve, reject) => {
 ffmpeg.ffprobe('/path/to/file'), function (err, metadata) {
 FileDuration = metadata.format.duration;
 resolve()
 });
 })}

 await ffprobePromise();

 ffmpeg('path/to/output')
 .videoCodec('libx264')
 .audioCodec('libmp3lame')
 .duration(FileDuration) // !! not setting 'length' metadata property in file
 .size(`960x400`)
 // Stream output requires manually specifying output formats
 .format('mp4')
 .outputOptions(['-movflags dash', `-metadata length=${FileDuration}`]) // also not setting length in metadata



Here is the sample file that was created : https://devxxx001.s3.amazonaws.com/sample_960x400_47sec.mp4


If you download and view the properties of that file, there is no
length
property in the metadata. Hence when you play the file, the video player is not able to determine the total duration of the video. You'll notice it keeps jumping up as the video plays.

The ffmpeg documentation states that you can use
ffmpeg -i in.avi -metadata title="my title" out.flv
to set the title for example. But how do you do this withfluent-ffmpeg
?

-
Revision fb1f6f1db4 : Fix segment feature data type. It has a range of -255,255, so should be int16_t
7 juin 2013, par Ronald S. BultjeChanged Paths :
Modify /vp9/common/vp9_blockd.h
Fix segment feature data type.It has a range of -255,255, so should be int16_t, not int8_t.
Change-Id : I5ef4b6aefb6212b0f35f4754f3c4d73fddbc52a0
-
How to batch process a series of video files with powershell and other-transcode/ffmpeg
7 juin 2022, par DarkDiamondTL ;DR


What did I do wrong in the following PowerShell-Script ? It does not work as expected.



I am recording some of my lectures in my university with a photo camera. This works pretty well although I have to split the single lecture into three to four parts because the camera can only record 29 minutes of video in one take. I know that this is a common issue related to some licensensing problem that most photo cameras simply don't have the right license to record longer videos. But it confronts me with the problem that I later have to edit the files together after I did some post processing on them.


With the camera I produce up to four video files with sizes around 3.5 GB which is way to big in order to be of any use because our IT department understandably doesn't want to host so much data, as I produce around 22 GB of video material each week.


Some time ago I came across a very useful tool called "other-video-transcoding" by Don Melton over on GitHub, written in ruby, that allows me to compress the files to a reasonable file size without any visual loss. In addition I crop the videos to remove the part of each frame that is neither the board nor a place where my professor stands in order to decrease the filesize even further and do some privacy protection by cutting out most of the students.


As the tools are accessable via the command line, it is relatively easy to configure and does not cost additional computational power to render a nice gui, so I can edit one of the 29 minute clips in less than 10 minutes.


Now I wanted to optimize my workflow by writing a PowerShell script that only takes the parameters what to crop and which files to work on and then does the rest on its own so I can just start the script and then do something else while my laptop renders the new files.


So far I have the following :


$video_path = Get-ChildItem ..\ -Directory | findstr "SoSe"

Get-ChildItem $video_path -name | findstr ".MP4" | Out-File temp.txt -Append 
Get-Content temp.txt | ForEach-Object {"file " + $_} >> .\files.txt

Get-ChildItem $video_path |
Foreach-Object {
other-transcode --hevc --mp4 --target 3000 --crop 1920:780:0:0 $_.FullName
}

#other-transcode --hevc --mp4 --crop 1920:720:60:0 ..\SoSe22_Theo1_videos_v14_RAW\
ffmpeg -f concat -i files.txt -c copy merged.mp4
Remove-Item .\temp.txt



but it does not quite do what I it expect to do.
This is my file system :


sciebo/
└── SoSe22_Theo1_videos/
 ├── SoSe22_Theo1_videos_v16/
 │ ├── SoSe22_Theo1_videos_v16_KOMPR/
 │ │ ├── C0001.mp4
 │ │ ├── C0002.mp4
 │ │ ├── C0003.mp4
 │ │ ├── C0004.mp4
 │ │ ├── temp.txt
 │ │ ├── files.txt
 │ │ └── merged.mp4
 │ └── SoSe22_Theo1_videos_v16_RAW/
 │ ├── C0001.mp4
 │ ├── C0002.mp4
 │ ├── C0003.mp4
 │ └── C0004.mp4
 └── SoSe22_Theo1_videos_v17/
 ├── SoSe22_Theo1_videos_v17_KOMPR
 └── SoSe22_Theo1_videos_v17_RAW/
 ├── C0006.mp4
 ├── C0007.mp4
 ├── C0008.mp4
 └── C0009.mp4



where the 16th lecture is already processed and the 17th is not. I always have the raw video data in the folders ending on
RAW
and the edited/compressed output files in the one ending onKOMPR
. Note that the video files in theKOMPR
folder are the output files of theother-transcode
tool.

The real work happens in the line where it says


other-transcode --hevc --mp4 --target 3000 --crop 1920:780:0:0 $_.FullName



and in the line


ffmpeg -f concat -i files.txt -c copy merged.mp4



where I concat the output files into the final version I can upload to our online learning platform.
What is wrong with my script ? In the end I'd like to pass the
--crop
parameter just to my script, but that is not the primary problem.


A little information on the transcoding script so you don't have to look into the documentation :

As the last argument the tool takes the location of the video files to work on, be it relative or absolute file paths. The output is placed in the folder the script is called in, so if I cd into one of theKOMPR
directories and then call

other-transcode --mp4 ../SoSe22_Theo1_videos_v16_RAW/C0001.mp4



a new file
C0001.mp4
is created in theKOMPR
directory and the transcoded video and old audio are written to that new video file.