
Recherche avancée
Autres articles (34)
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users.
Sur d’autres sites (6961)
-
FFmpeg segmentation and transcoding missing frames
15 décembre 2022, par Davidec0018I code videos for hobbies and have a decent understanding of ffmpeg and mkvmerge. I prefer to encode video when my computer is on for other things as well, so I recently looked for a way that I could resume encoding after the computer was turned off.


I tried a virtual machine, saving the whole state and it seems to work very well, but the performance is very slow and with the same settings the encoding time is much longer than normal.


I then tried to divide the starting video into several segments, so as to resume from the appropriate segment after restarting the computer.


I tried to do this with ffmpeg :


ffmpeg -i input -map 0:v:0 -c copy -f segment -segment_time 300 -reset_timestamps 1 segment%03d.mkv



But also with the mkvtoolnix gui.


Both operations provide an excellent result.Trying to merge the segments into one video, with ffconcat or mkvtoolnix the result is perfect.


The problem arises when segments are encoded. I use a simple script based on slow preset for every segment in loop (I use both windows and linux) :


ffmpeg -i input.mkv -threads 0 -map 0 -c:a copy -c:s copy -preset slow -pix_fmt yuv420p10le -c:v libx265 -x265-params crf=18:bframes=8:aq-mode=2:aq-strength=1.0 output.mkv



Putting them together in the same way, the video also looks quite good, and with the naked eye you don't notice the passage of the various segments, but analyzing them with ffmpeg I notice that the individual segments have slightly shorter durations and a different number of frames, even 2 or 3 less. When putting together very long videos, you notice even 2 seconds of difference with the original, which also causes the audio and subtitles to go into desynch.


I know the problem has to do with keyframes, timestamps and stuff like that. But I don't understand why. FFmpeg, as well as mkvmerge should split the video exactly where the keyframes are, about 300 seconds apart, so as not to mess up the video structure and allow for good encoding and reassembling.


The problem is just encoding with ffmpeg that removes some frames from the original segments. Sometimes I noticed during the encoding of some segments the following error code, or maybe warning, because the encoding worked anyway :


[hevc @ 0x55758bf92dc0] First slice in a frame missing.
 Last message repeated 6 times
[hevc @ 0x55758c2000c0] First slice in a frame missing.



I've read every discussion about it on the net, I've tried to segment both with mp4 and mkv format, with and without audio, but the problem remains. Where am I doing wrong ?


-
How/Where to place the FFMPEG `-legacy_icecast 1` option to only affect one of two Icecast outputs ? (using tee muxer option)
4 juin 2020, par jzvi12I have an FFMPEG command which was able to send an RTMP live feed to 2 different icecast radio stations :



command 1 (in prod ; 1 of 2 failing) :



/home/ubuntu/encoder/bin/ffmpeg -i rtmp://127.0.0.1:1935/app/live -vn -c:a mp3 -ac 2 -b:a 64k -ar 44100 -f tee -map 0 "[f=mp3:onfail=ignore]icecast://source:password@liquidsoap:8000/live|[f=mp3:onfail=ignore]icecast://source:password@fluoz.zeno.fm:80/live"




I would get the following FFMPEG error when running above command 1 :



[tee @ 0x562fffd24bc0] Slave '[f=mp3:onfail=ignore]icecast://source:password@fluoz.zeno.fm:80/live': error opening: End of file
[tee @ 0x562fffd24bc0] Slave muxer #1 failed: End of file, continuing with 1/2 slaves.




It was working fine until these days when one of them (fluoz.zeno.fm:80/live) stopped working and I think Zeno upgraded their Icecast servers from v1 (legacy) to v2. Why ? because when I was doing individual testing to the Zeno icecast server, I realized that it worked fine when I added the
-legacy_icecast 1
option


command 2 (testing to Zeno only w/
-legacy_icecast 1
option) :


/home/ubuntu/encoder/bin/ffmpeg -i rtmp://127.0.0.1:1935/app/live -vn -c:a mp3 -ac 2 -b:a 64k -ar 44100 -legacy_icecast 1 -f mp3 icecast://source:password@fluoz.zeno.fm:80/live




QUESTION :



How can I use the command 1 above to still send to both icecast servers but having the
-legacy_icecast 1
option to only affect the zeno icecast server and not the liquidsoap icecast server ? I want to avoid running 2 separate instances of ffmpeg at all cost in order to save system resources and bandwidth.


The reason I ask this question is because I tried adding the
-legacy_icecast 1
option to the command 1 (that one that sends to both) by placing it right before the...-f tee...
option, but it still didn't work to send to Zeno icecast server which failed (the liquidsoap icecast server kept running fine). It seems to only work fine when I use command 2 (above) when not using the tee muxer option.


Is there a tricky way to place that
-legacy_icecast 1
option within the tee muxer option ??

-
MPEG-2 AAC frame-by-frame audio decoding
3 mai 2018, par Jonathan MayI have individual audio frames encoded in MPEG-2 AAC. Each frame consists of 1024 16 bit PCM samples.
I notice that each AAC frame is a different size. I assume this is a result of the MPEG-2 AAC compression algorithm and perfectly normal.
I need a way to decode a single frame and get back the original 1024 PCM samples (with error from lossy compression, that’s fine).
I couldn’t find information about the MPEG-2 AAC algorithm ANYWHERE online. It’s kinda nuts.
I’ve been trying a crude work around using a library called
pydub
, which contains a few methods which use FFMPEG’s AAC decoder. Trying to load the audio frame as an AudioSegment using AAC encoding :audioData = BytesIO(frame)
sound = AudioSegment.from_file(audioData, format="aac")gives the following error :
[aac @ 000002d444c1aa00] Estimating duration from bitrate, this may be inaccurate\r\n
Input #0, aac, from 'C:\\Users\\jmk_m\\AppData\\Local\\Temp\\tmpjl3x0xao':\r\n
Duration: 00:00:00.19, bitrate: 23 kb/s\r\n
Stream #0:0: Audio: aac (LC), 22050 Hz, mono, fltp, 23 kb/s\r\nStream mapping:\r\n
Stream #0:0 -> #0:0 (aac (native) -> pcm_s16le (native))\r\n
Press [q] to stop, [?] for help\r\n
Output #0, wav, to 'C:\\Users\\jmk_m\\AppData\\Local\\Temp\\tmpxmp942e4':\r\n
Metadata:\r\n
ISFT : Lavf58.10.100\r\n
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, mono, s16, 352 kb/s\r\n
Metadata:\r\n encoder : Lavc58.13.100 pcm_s16le\r\n
[aac @ 000002d444cc7480] Reserved bit set.\r\n
[aac @ 000002d444cc7480] Prediction is not allowed in AAC-LC.\r\n
Error while decoding stream #0:0: Invalid data found when processing input\r\n
[aac @ 000002d444cc7480] Reserved bit set.\r\n
[aac @ 000002d444cc7480] Prediction is not allowed in AAC-LC.\r\n
Error while decoding stream #0:0: Invalid data found when processing input\r\n
[aac @ 000002d444cc7480] Prediction is not allowed in AAC-LC.\r\n
Error while decoding stream #0:0: Invalid data found when processing input\r\n
size= 2kB time=00:00:00.04 bitrate= 366.2kbits/s speed=5.45x \r\n
video:0kB audio:2kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.808594%\r\n
Conversion failed!\r\n"If anyone has any insights as to what may be causing the error, or any alternative approaches, that’d be greatly appreciated !