
Recherche avancée
Médias (91)
-
Chuck D with Fine Arts Militia - No Meaning No
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Paul Westerberg - Looking Up in Heaven
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Le Tigre - Fake French
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Thievery Corporation - DC 3000
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Dan the Automator - Relaxation Spa Treatment
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Gilberto Gil - Oslodum
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (47)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (7563)
-
Hardsub issue with ffmpeg
27 octobre 2013, par user2925649I am trying to hardsub subtitle files on videos with ffmpeg. The video is creating properly but I can't see any text on it. I am on Windows.
Test with .srt file
ffmpeg started on 2013-10-27 at 19:27:24
Report written to "ffmpeg-20131027-192724.log"
Command line:
"C:\\Users\\a\\Documents\\Projects\\videoArac\\videoArac\\bin\\Debug\\calis.exe" -y -i "D:\\ortamFabrika\\videoTest\\videolar\\1.mp4" -vf "subtitles=altyazi2895625.srt" -vcodec mpeg2video -qscale 1 "C:\\Users\\a\\Documents\\Projects\\videoArac\\videoArac\\bin\\Debug\\altyazi5795186.mpg" -report
ffmpeg version N-48675-g2672b2c Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 9 2013 23:25:59 with gcc 4.7.2 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib --enable-filter=frei0r
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.107 / 54. 59.107
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-i' ... matched as input file with argument 'D:\ortamFabrika\videoTest\videolar\1.mp4'.
Reading option '-vf' ... matched as option 'vf' (video filters) with argument 'subtitles=altyazi2895625.srt'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'mpeg2video'.
Reading option '-qscale' ... matched as option 'qscale' (use fixed quality scale (VBR)) with argument '1'.
Reading option 'C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi5795186.mpg' ... matched as output file.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file D:\ortamFabrika\videoTest\videolar\1.mp4.
Successfully parsed a group of options.
Opening an input file: D:\ortamFabrika\videoTest\videolar\1.mp4.
[mov,mp4,m4a,3gp,3g2,mj2 @ 00794f60] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00794f60] ISO: File Type Major Brand: isom
[mov,mp4,m4a,3gp,3g2,mj2 @ 00794f60] File position before avformat_find_stream_info() is 667830
[h264 @ 007929a0] Using externally provided dimensions
[h264 @ 007929a0] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 00794f60] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 00794f60] File position after avformat_find_stream_info() is 2014
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\ortamFabrika\videoTest\videolar\1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.0
Duration: 00:00:15.96, start: 0.000000, bitrate: 334 kb/s
Stream #0:0(und), 2, 1/25: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 9 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 1, 1/44100: Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16p, 319 kb/s
Metadata:
handler_name : SoundHandler
Successfully openened the file.
Parsing a group of options: output file C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi5795186.mpg.
Applying option vf (video filters) with argument subtitles=altyazi2895625.srt.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument mpeg2video.
Applying option qscale (use fixed quality scale (VBR)) with argument 1.
Please use -q:a or -q:v, -qscale is ambiguous
Successfully parsed a group of options.
Opening an output file: C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi5795186.mpg.
Successfully openened the file.
[subtitles @ 003fd840] Setting 'filename' to value 'altyazi2895625.srt'
[Parsed_subtitles_0 @ 0079a180] Raster: FreeType 2.4.10
[Parsed_subtitles_0 @ 0079a180] Shaper: FriBidi 0.19.5 (SIMPLE)
[Parsed_subtitles_0 @ 0079a180] Initialized
[Parsed_subtitles_0 @ 0079a180] No usable fontconfig configuration file found, using fallback.
[srt @ 007ac380] Format srt probed with size=2048 and score=100
[srt @ 007ac380] File position before avformat_find_stream_info() is 280
[srt @ 007ac380] All info found
[srt @ 007ac380] Estimating duration from bitrate, this may be inaccurate
[srt @ 007ac380] File position after avformat_find_stream_info() is 280
[Parsed_subtitles_0 @ 0079a180] Event: [Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
[Events]
Format: Layer, Start, End, Style, Text
[Parsed_subtitles_0 @ 0079a180]
[Parsed_subtitles_0 @ 0079a180] Style format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
[Parsed_subtitles_0 @ 0079a180] [00798cb0] Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
[Parsed_subtitles_0 @ 0079a180] Name = Default
[Parsed_subtitles_0 @ 0079a180] FontName = Arial
[Parsed_subtitles_0 @ 0079a180] FontSize = 16
[Parsed_subtitles_0 @ 0079a180] PrimaryColour = &Hffffff
[Parsed_subtitles_0 @ 0079a180] SecondaryColour = &Hffffff
[Parsed_subtitles_0 @ 0079a180] OutlineColour = &H0
[Parsed_subtitles_0 @ 0079a180] BackColour = &H0
[Parsed_subtitles_0 @ 0079a180] Bold = 0
[Parsed_subtitles_0 @ 0079a180] Italic = 0
[Parsed_subtitles_0 @ 0079a180] Underline = 0
[Parsed_subtitles_0 @ 0079a180] BorderStyle = 1
[Parsed_subtitles_0 @ 0079a180] Outline = 1
[Parsed_subtitles_0 @ 0079a180] Shadow = 0
[Parsed_subtitles_0 @ 0079a180] Alignment = 2
[Parsed_subtitles_0 @ 0079a180] MarginL = 10
[Parsed_subtitles_0 @ 0079a180] MarginR = 10
[Parsed_subtitles_0 @ 0079a180] MarginV = 10
[Parsed_subtitles_0 @ 0079a180] Encoding = 0
[Parsed_subtitles_0 @ 0079a180] Event format: Layer, Start, End, Style, Text
[Parsed_subtitles_0 @ 0079a180] Event: Dialogue: 0,0:00:01.48,0:00:04.02,Default,{\c&HFF00&}VimeoSrtPlayer Example{\c}
[Parsed_subtitles_0 @ 0079a180]
[Parsed_subtitles_0 @ 0079a180] Layer = 0
[Parsed_subtitles_0 @ 0079a180] Start = 0:00:01.48
[Parsed_subtitles_0 @ 0079a180] Duration = 0:00:04.02
[Parsed_subtitles_0 @ 0079a180] Style = Default
[Parsed_subtitles_0 @ 0079a180] Text = {\c&HFF00&}VimeoSrtPlayer Example{\c}
[Parsed_subtitles_0 @ 0079a180] Event: Dialogue: 0,0:00:05.05,0:00:09.55,Default,Support for {\i1}italic{\i0} font
[Parsed_subtitles_0 @ 0079a180]
[Parsed_subtitles_0 @ 0079a180] Layer = 0
[Parsed_subtitles_0 @ 0079a180] Start = 0:00:05.05
[Parsed_subtitles_0 @ 0079a180] Duration = 0:00:09.55
[Parsed_subtitles_0 @ 0079a180] Style = Default
[Parsed_subtitles_0 @ 0079a180] Text = Support for {\i1}italic{\i0} font
[Parsed_subtitles_0 @ 0079a180] Event: Dialogue: 0,0:00:09.38,0:00:13.75,Default,Support for {\b1}bold{\b0} font
[Parsed_subtitles_0 @ 0079a180]
[Parsed_subtitles_0 @ 0079a180] Layer = 0
[Parsed_subtitles_0 @ 0079a180] Start = 0:00:09.38
[Parsed_subtitles_0 @ 0079a180] Duration = 0:00:13.75
[Parsed_subtitles_0 @ 0079a180] Style = Default
[Parsed_subtitles_0 @ 0079a180] Text = Support for {\b1}bold{\b0} font
[Parsed_subtitles_0 @ 0079a180] Event: Dialogue: 0,0:00:14.81,0:00:16.14,Default,Multi\NLine\NSupport ;)
[Parsed_subtitles_0 @ 0079a180]
[Parsed_subtitles_0 @ 0079a180] Layer = 0
[Parsed_subtitles_0 @ 0079a180] Start = 0:00:14.81
[Parsed_subtitles_0 @ 0079a180] Duration = 0:00:16.14
[Parsed_subtitles_0 @ 0079a180] Style = Default
[Parsed_subtitles_0 @ 0079a180] Text = Multi\NLine\NSupport ;)
[AVIOContext @ 007ac920] Statistics: 280 bytes read, 0 seeks
[buffer @ 003fd960] Setting entry with key 'video_size' to value '1280x720'
[buffer @ 003fd960] Setting entry with key 'pix_fmt' to value '0'
[buffer @ 003fd960] Setting entry with key 'time_base' to value '1/25'
[buffer @ 003fd960] Setting entry with key 'pixel_aspect' to value '1/1'
[buffer @ 003fd960] Setting entry with key 'sws_param' to value 'flags=2'
[buffer @ 003fd960] Setting entry with key 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 007a9fc0] w:1280 h:720 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2
[abuffer @ 003fd9e0] Setting entry with key 'time_base' to value '1/44100'
[abuffer @ 003fd9e0] Setting entry with key 'sample_rate' to value '44100'
[abuffer @ 003fd9e0] Setting entry with key 'sample_fmt' to value 's16p'
[abuffer @ 003fd9e0] Setting entry with key 'channel_layout' to value '0x3'
[graph 1 input from stream 0:1 @ 007aee60] tb:1/44100 samplefmt:s16p samplerate:44100 chlayout:0x3
[aformat @ 00796340] Setting entry with key 'sample_fmts' to value 's16'
[aformat @ 00796340] Setting entry with key 'sample_rates' to value '44100,48000,32000,22050,24000,16000'
[aformat @ 00796340] Setting entry with key 'channel_layouts' to value '0x4,0x3'
[audio format for output stream 0:1 @ 007aef20] auto-inserting filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the filter 'audio format for output stream 0:1'
[auto-inserted resampler 0 @ 007aef80] chl:stereo fmt:s16p r:44100Hz -> chl:stereo fmt:s16 r:44100Hz
[mpeg2video @ 01c87260] detected 1 logical cores
[mpeg2video @ 01c87260] intra_quant_bias = 96 inter_quant_bias = 0
[h264 @ 007929a0] detected 1 logical cores
[mpeg @ 00798580] VBV buffer size not set, muxing may fail
Output #0, mpeg, to 'C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi5795186.mpg':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.59.107
Stream #0:0(und), 0, 1/90000: Video: mpeg2video, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 0, 1/90000: Audio: mp2, 44100 Hz, stereo, s16, 128 kb/s
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg2video)
Stream #0:1 -> #0:1 (mp3 -> mp2)
Press [q] to stop, [?] for help
[h264 @ 007929a0] Using externally provided dimensions
[h264 @ 007929a0] no picture
[Parsed_subtitles_0 @ 0079a180] Copying data in avfilter (have perms 5, need 3, reject 0)
[Parsed_subtitles_0 @ 0079a180] Neither PlayResX nor PlayResY defined. Assuming 384x288
[Parsed_subtitles_0 @ 0079a180] Copying data in avfilter (have perms 5, need 3, reject 0)
[mpeg @ 00798580] First SCR: 0 First DTS: 45000
[Parsed_subtitles_0 @ 0079a180] color: FF0000
[Parsed_subtitles_0 @ 0079a180] Copying data in avfilter (have perms 5, need 3, reject
...
[Parsed_subtitles_0 @ 0079a180] Copying data in avfilter (have perms 5, need 3, reject 0)
[output stream 0:0 @ 007aa0e0] EOF on sink link output stream 0:0:default.
[output stream 0:1 @ 007aeec0] EOF on sink link output stream 0:1:default.
No more output streams to write to, finishing.
frame= 399 fps= 93 q=1.0 Lsize= 1036kB time=00:00:15.94 bitrate= 532.1kbits/s
video:778kB audio:249kB subtitle:0 global headers:0kB muxing overhead 0.887275%
[AVIOContext @ 003fff40] Statistics: 711491 bytes read, 2 seeksTest with .ass file
ffmpeg started on 2013-10-27 at 19:48:45
Report written to "ffmpeg-20131027-194845.log"
Command line:
"C:\\Users\\a\\Documents\\Projects\\videoArac\\videoArac\\bin\\Debug\\calis.exe" -y -i "D:\\ortamFabrika\\videoTest\\videolar\\1.mp4" -vf "ass=altyazi5334240.ass" -vcodec mpeg2video -qscale 1 "C:\\Users\\a\\Documents\\Projects\\videoArac\\videoArac\\bin\\Debug\\altyazi7055475.mpg" -report
ffmpeg version N-48675-g2672b2c Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 9 2013 23:25:59 with gcc 4.7.2 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib --enable-filter=frei0r
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.107 / 54. 59.107
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-i' ... matched as input file with argument 'D:\ortamFabrika\videoTest\videolar\1.mp4'.
Reading option '-vf' ... matched as option 'vf' (video filters) with argument 'ass=altyazi5334240.ass'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'mpeg2video'.
Reading option '-qscale' ... matched as option 'qscale' (use fixed quality scale (VBR)) with argument '1'.
Reading option 'C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi7055475.mpg' ... matched as output file.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file D:\ortamFabrika\videoTest\videolar\1.mp4.
Successfully parsed a group of options.
Opening an input file: D:\ortamFabrika\videoTest\videolar\1.mp4.
[mov,mp4,m4a,3gp,3g2,mj2 @ 00724f40] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00724f40] ISO: File Type Major Brand: isom
[mov,mp4,m4a,3gp,3g2,mj2 @ 00724f40] File position before avformat_find_stream_info() is 667830
[h264 @ 00722980] Using externally provided dimensions
[h264 @ 00722980] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 00724f40] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 00724f40] File position after avformat_find_stream_info() is 2014
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\ortamFabrika\videoTest\videolar\1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.0
Duration: 00:00:15.96, start: 0.000000, bitrate: 334 kb/s
Stream #0:0(und), 2, 1/25: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 9 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 1, 1/44100: Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16p, 319 kb/s
Metadata:
handler_name : SoundHandler
Successfully openened the file.
Parsing a group of options: output file C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi7055475.mpg.
Applying option vf (video filters) with argument ass=altyazi5334240.ass.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument mpeg2video.
Applying option qscale (use fixed quality scale (VBR)) with argument 1.
Please use -q:a or -q:v, -qscale is ambiguous
Successfully parsed a group of options.
Opening an output file: C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi7055475.mpg.
Successfully openened the file.
[ass @ 0060d840] Setting 'filename' to value 'altyazi5334240.ass'
[Parsed_ass_0 @ 00725ce0] Raster: FreeType 2.4.10
[Parsed_ass_0 @ 00725ce0] Shaper: FriBidi 0.19.5 (SIMPLE)
[Parsed_ass_0 @ 00725ce0] Initialized
[Parsed_ass_0 @ 00725ce0] No usable fontconfig configuration file found, using fallback.
[Parsed_ass_0 @ 00725ce0] File size: 1440
[Parsed_ass_0 @ 00725ce0] Style format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
[Parsed_ass_0 @ 00725ce0] [0073a030] Style: Default,Arial,16,&H00FFFFFF,&H000000FF,&H32202255,&HC8333CBA,0,0,0,0,100,100,0,0,1,3,1,2,100,100,50,1
[Parsed_ass_0 @ 00725ce0] Name = Default
[Parsed_ass_0 @ 00725ce0] FontName = Arial
[Parsed_ass_0 @ 00725ce0] FontSize = 16
[Parsed_ass_0 @ 00725ce0] PrimaryColour = &H00FFFFFF
[Parsed_ass_0 @ 00725ce0] SecondaryColour = &H000000FF
[Parsed_ass_0 @ 00725ce0] OutlineColour = &H32202255
[Parsed_ass_0 @ 00725ce0] BackColour = &HC8333CBA
[Parsed_ass_0 @ 00725ce0] Bold = 0
[Parsed_ass_0 @ 00725ce0] Italic = 0
[Parsed_ass_0 @ 00725ce0] Underline = 0
[Parsed_ass_0 @ 00725ce0] StrikeOut = 0
[Parsed_ass_0 @ 00725ce0] ScaleX = 100
[Parsed_ass_0 @ 00725ce0] ScaleY = 100
[Parsed_ass_0 @ 00725ce0] Spacing = 0
[Parsed_ass_0 @ 00725ce0] Angle = 0
[Parsed_ass_0 @ 00725ce0] BorderStyle = 1
[Parsed_ass_0 @ 00725ce0] Outline = 3
[Parsed_ass_0 @ 00725ce0] Shadow = 1
[Parsed_ass_0 @ 00725ce0] Alignment = 2
[Parsed_ass_0 @ 00725ce0] MarginL = 100
[Parsed_ass_0 @ 00725ce0] MarginR = 100
[Parsed_ass_0 @ 00725ce0] MarginV = 50
[Parsed_ass_0 @ 00725ce0] Encoding = 1
[Parsed_ass_0 @ 00725ce0] Event format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:00.01
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:10.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}This line is 10 seconds long but will disappear and reappear alongside other subs.
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:00.01
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:01.50
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:02.00
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:03.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:02.00
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:03.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:02.00
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:03.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:02.00
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:03.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:05.00
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:06.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Layer = 0
[Parsed_ass_0 @ 00725ce0] Start = 0:00:07.00
[Parsed_ass_0 @ 00725ce0] Duration = 0:00:09.00
[Parsed_ass_0 @ 00725ce0] Style = Default
[Parsed_ass_0 @ 00725ce0] MarginL = 0000
[Parsed_ass_0 @ 00725ce0] MarginR = 0000
[Parsed_ass_0 @ 00725ce0] MarginV = 0000
[Parsed_ass_0 @ 00725ce0] Effect =
[Parsed_ass_0 @ 00725ce0] Text = {\be1}TEXT
[Parsed_ass_0 @ 00725ce0] Added subtitle file: 'altyazi5334240.ass' (2 styles, 8 events)
[buffer @ 0060d960] Setting entry with key 'video_size' to value '1280x720'
[buffer @ 0060d960] Setting entry with key 'pix_fmt' to value '0'
[buffer @ 0060d960] Setting entry with key 'time_base' to value '1/25'
[buffer @ 0060d960] Setting entry with key 'pixel_aspect' to value '1/1'
[buffer @ 0060d960] Setting entry with key 'sws_param' to value 'flags=2'
[buffer @ 0060d960] Setting entry with key 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0073c360] w:1280 h:720 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2
[abuffer @ 0060d9e0] Setting entry with key 'time_base' to value '1/44100'
[abuffer @ 0060d9e0] Setting entry with key 'sample_rate' to value '44100'
[abuffer @ 0060d9e0] Setting entry with key 'sample_fmt' to value 's16p'
[abuffer @ 0060d9e0] Setting entry with key 'channel_layout' to value '0x3'
[graph 1 input from stream 0:1 @ 0073de00] tb:1/44100 samplefmt:s16p samplerate:44100 chlayout:0x3
[aformat @ 007262a0] Setting entry with key 'sample_fmts' to value 's16'
[aformat @ 007262a0] Setting entry with key 'sample_rates' to value '44100,48000,32000,22050,24000,16000'
[aformat @ 007262a0] Setting entry with key 'channel_layouts' to value '0x4,0x3'
[audio format for output stream 0:1 @ 0073dec0] auto-inserting filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the filter 'audio format for output stream 0:1'
[auto-inserted resampler 0 @ 0073df20] chl:stereo fmt:s16p r:44100Hz -> chl:stereo fmt:s16 r:44100Hz
[mpeg2video @ 0081fc00] detected 1 logical cores
[mpeg2video @ 0081fc00] intra_quant_bias = 96 inter_quant_bias = 0
[h264 @ 00722980] detected 1 logical cores
[mpeg @ 00728560] VBV buffer size not set, muxing may fail
Output #0, mpeg, to 'C:\Users\a\Documents\Projects\videoArac\videoArac\bin\Debug\altyazi7055475.mpg':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.59.107
Stream #0:0(und), 0, 1/90000: Video: mpeg2video, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 0, 1/90000: Audio: mp2, 44100 Hz, stereo, s16, 128 kb/s
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg2video)
Stream #0:1 -> #0:1 (mp3 -> mp2)
Press [q] to stop, [?] for help
[h264 @ 00722980] Using externally provided dimensions
[h264 @ 00722980] no picture
[Parsed_ass_0 @ 00725ce0] Copying data in avfilter (have perms 5, need 3, reject 0)
[Parsed_ass_0 @ 00725ce0] Copying data in avfilter (have perms 5, need 3, reject 0)
[mpeg @ 00728560] First SCR: 0 First DTS: 45000
[Parsed_ass_0 @ 00725ce0] Copying data in avfilter (have perms 5, need 3, reject 0)
[Parsed_ass_0 @ 00725ce0] Copying data in avfilter (have perms 5, need 3, reject 0)
[output stream 0:0 @ 0073c480] EOF on sink link output stream 0:0:default.
[output stream 0:1 @ 0073de60] EOF on sink link output stream 0:1:default.
No more output streams to write to, finishing.
frame= 399 fps=139 q=1.0 Lsize= 1036kB time=00:00:15.94 bitrate= 532.1kbits/s
video:778kB audio:249kB subtitle:0 global headers:0kB muxing overhead 0.887275%
[AVIOContext @ 00721ea0] Statistics: 711491 bytes read, 2 seeks -
Queue in Python processing more than one video at a time ? [closed]
12 novembre 2024, par Mateus CoelhoI have an raspberry pi, that i proccess videos, rotate and put 4 water marks, but, when i run into the raspberry pi, it uses 100% of 4CPUS threads and it reboots. I solved this using -threads 1, to prevent the usage of just one of the 4 CPUS cores, it worked.


I made a Queue to procces one at a time, because i have 4 buttons that trigger the videos. But, when i send more then 3 videos to the Queue, the rasp still reboots, and im monitoring the CPU usage, is 100% for only one of the four CPUS



But, if i send 4 or 5 videos to the thread folder, it completly reboots, and the most awkward, its after the reboot, it made its way to proceed all the videos.



import os
import time
import subprocess
from google.cloud import storage
import shutil

QUEUE_DIR = "/home/abidu/Desktop/ApertaiRemoteClone"
ERROR_VIDEOS_DIR = "/home/abidu/Desktop/ApertaiRemoteClone/ErrorVideos"
CREDENTIALS_PATH = "/home/abidu/Desktop/keys.json"
BUCKET_NAME = "videos-283812"

def is_valid_video(file_path):
 try:
 result = subprocess.run(
 ['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', file_path],
 stdout=subprocess.PIPE,
 stderr=subprocess.PIPE
 )
 return result.returncode == 0
 except Exception as e:
 print(f"Erro ao verificar o vídeo: {e}")
 return False

def overlay_images_on_video(input_file, image_files, output_file, positions, image_size=(100, 100), opacity=0.7):
 inputs = ['-i', input_file]
 for image in image_files:
 if image:
 inputs += ['-i', image]
 filter_complex = "[0:v]transpose=2[rotated];"
 current_stream = "[rotated]"
 for i, (x_offset, y_offset) in enumerate(positions):
 filter_complex += f"[{i+1}:v]scale={image_size[0]}:{image_size[1]},format=rgba,colorchannelmixer=aa={opacity}[img{i}];"
 filter_complex += f"{current_stream}[img{i}]overlay={x_offset}:{y_offset}"
 if i < len(positions) - 1:
 filter_complex += f"[tmp{i}];"
 current_stream = f"[tmp{i}]"
 else:
 filter_complex += ""
 command = ['ffmpeg', '-y', '-threads', '1'] + inputs + ['-filter_complex', filter_complex, '-threads', '1', output_file]

 try:
 result = subprocess.run(command, check=True)
 result.check_returncode() # Verifica se o comando foi executado com sucesso
 print(f"Vídeo processado com sucesso: {output_file}")
 except subprocess.CalledProcessError as e:
 print(f"Erro ao processar o vídeo: {e}")
 if "moov atom not found" in str(e):
 print("Vídeo corrompido ou sem o moov atom. Pulando o arquivo.")
 raise # Relança a exceção para ser tratada no nível superior

def process_and_upload_video():
 client = storage.Client.from_service_account_json(CREDENTIALS_PATH)
 bucket = client.bucket(BUCKET_NAME)
 
 while True:
 # Aguarda 10 segundos antes de verificar novos vídeos
 time.sleep(10)

 # Verifica se há arquivos no diretório de fila
 queue_files = [f for f in os.listdir(QUEUE_DIR) if f.endswith(".mp4")]
 
 if queue_files:
 video_file = os.path.join(QUEUE_DIR, queue_files[0]) # Pega o primeiro vídeo na fila
 
 # Define o caminho de saída após o processamento com o mesmo nome do arquivo de entrada
 output_file = os.path.join(QUEUE_DIR, "processed_" + os.path.basename(video_file))
 if not is_valid_video(video_file):
 print(f"Arquivo de vídeo inválido ou corrompido: {video_file}. Pulando.")
 os.remove(video_file) # Remove arquivo corrompido
 continue

 # Processa o vídeo com a função overlay_images_on_video
 try:
 overlay_images_on_video(
 video_file,
 ["/home/abidu/Desktop/ApertaiRemoteClone/Sponsor/image1.png", 
 "/home/abidu/Desktop/ApertaiRemoteClone/Sponsor/image2.png", 
 "/home/abidu/Desktop/ApertaiRemoteClone/Sponsor/image3.png", 
 "/home/abidu/Desktop/ApertaiRemoteClone/Sponsor/image4.png"],
 output_file,
 [(10, 10), (35, 1630), (800, 1630), (790, 15)],
 image_size=(250, 250),
 opacity=0.8
 )
 
 if os.path.exists(output_file):
 blob = bucket.blob(os.path.basename(video_file).replace("-", "/"))
 blob.upload_from_filename(output_file, content_type='application/octet-stream')
 print(f"Uploaded {output_file} to {BUCKET_NAME}")
 os.remove(video_file)
 os.remove(output_file)
 print(f"Processed and deleted {video_file} and {output_file}.")
 
 except subprocess.CalledProcessError as e:
 print(f"Erro ao processar {video_file}: {e}")
 
 move_error_video_to_error_directory(video_file)

 continue # Move para o próximo vídeo na fila após erro

def move_error_video_to_error_directory(video_file):
 print(f"Movendo arquivo de vídeo com erro {video_file} para {ERROR_VIDEOS_DIR}")

 if not os.path.exists(ERROR_VIDEOS_DIR):
 os.makedirs(ERROR_VIDEOS_DIR)
 
 shutil.move(video_file, ERROR_VIDEOS_DIR)

if __name__ == "__main__":
 process_and_upload_video()




-
RTSP to HLS conversion with error on some devices
2 septembre 2024, par Wallace KetlerI'm trying to convert, on a node server, RTSP IP camera devices to HLS to run livestreams on the web. The following code works well for some RTSP devices, but for others I encounter problems.


function startLive(rtspUrl, outputDir, id_local, id_camera) {
 return new Promise((resolve, reject) => {
 const processKey = `${id_local}_${id_camera}`;
 if (ffmpegProcesses[processKey]) {
 return reject(new Error('Conversão já está em andamento para esta câmera'));
 }
 
 const process = ffmpeg(rtspUrl)
 .inputOptions([
 '-rtsp_transport', 'tcp',
 '-fflags', 'nobuffer',
 '-max_delay', '1000000',
 '-analyzeduration', '1000000',
 '-probesize', '1000000',
 '-flush_packets', '1',
 '-avioflags', 'direct'
 ])
 .outputOptions([
 '-c:v', 'libx264',
 '-preset', 'ultrafast',
 '-tune', 'zerolatency',
 '-c:a', 'aac',
 '-hls_time', '10',
 '-hls_flags', 'delete_segments',
 '-hls_list_size', '5',
 '-hls_wrap', '5',
 '-strict', '-2'
 ])
 .output(path.join(outputDir, 'stream.m3u8'))
 .on('start', (commandLine) => {
 console.log('Spawned FFmpeg with command: ' + commandLine);
 })
 .on('stderr', (stderrLine) => {
 console.log('FFmpeg stderr: ' + stderrLine);
 })
 .on('end', () => {
 console.log('Conversão concluída');
 delete ffmpegProcesses[processKey]; 
 resolve();
 })
 .on('error', (err, stdout, stderr) => {
 console.error('Erro na conversão', err);
 console.error('FFmpeg stdout:', stdout);
 console.error('FFmpeg stderr:', stderr);
 delete ffmpegProcesses[processKey]; 
 reject(err);
 })
 .run();
 
 ffmpegProcesses[processKey] = process; 
 });
 }



When the conversion succeeds, it continues indefinitely with the logs :


FFmpeg stderr: frame= 61 fps= 48 q=13.0 size=N/A time=00:00:02.03 bitrate=N/A dup=60 drop=0 speed= 1.6x 
FFmpeg stderr: frame= 75 fps= 42 q=17.0 size=N/A time=00:00:02.52 bitrate=N/A dup=62 drop=0 speed=1.41x 
FFmpeg stderr: frame= 91 fps= 39 q=16.0 size=N/A time=00:00:03.04 bitrate=N/A dup=65 drop=0 speed=1.31x 
FFmpeg stderr: frame= 108 fps= 38 q=15.0 size=N/A time=00:00:03.60 bitrate=N/A dup=68 drop=0 speed=1.27x 
FFmpeg stderr: frame= 121 fps= 36 q=24.0 size=N/A time=00:00:04.03 bitrate=N/A dup=70 drop=0 speed=1.21x 
FFmpeg stderr: frame= 138 fps= 36 q=16.0 size=N/A time=00:00:04.60 bitrate=N/A dup=73 drop=0 speed= 1.2x 
FFmpeg stderr: frame= 152 fps= 35 q=17.0 size=N/A time=00:00:05.08 bitrate=N/A dup=75 drop=0 speed=1.17x 
FFmpeg stderr: frame= 168 fps= 35 q=16.0 size=N/A time=00:00:05.60 bitrate=N/A dup=78 drop=0 speed=1.15x 
FFmpeg stderr: frame= 183 fps= 34 q=21.0 size=N/A time=00:00:06.11 bitrate=N/A dup=80 drop=0 speed=1.13x 
FFmpeg stderr: frame= 198 fps= 34 q=16.0 size=N/A time=00:00:06.60 bitrate=N/A dup=83 drop=0 speed=1.12x 
FFmpeg stderr: frame= 215 fps= 33 q=16.0 size=N/A time=00:00:07.16 bitrate=N/A dup=86 drop=0 speed=1.11x 
FFmpeg stderr: frame= 230 fps= 33 q=16.0 size=N/A time=00:00:07.66 bitrate=N/A dup=88 drop=0 speed= 1.1x 
FFmpeg stderr: frame= 246 fps= 33 q=19.0 size=N/A time=00:00:08.20 bitrate=N/A dup=91 drop=0 speed= 1.1x 



And with the segments saved in the folder configured as output. But for certain devices, after creating the stream.m3u8 file and saving the first segment, the conversion is considered finished and falls into
.on('end')
. The error log is as follows :

FFmpeg stderr: frame= 0 fps=0.0 q=0.0 size=N/A time=00:00:01.12 bitrate=N/A speed=2.08x 
FFmpeg stderr: [hls @ 0x55e00dfc4380] Opening 'my_path/stream0.ts' for writing
FFmpeg stderr: [hls @ 0x55e00dfc4380] Opening 'my_path/stream.m3u8.tmp' for writing
FFmpeg stderr: frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:01.37 bitrate=N/A speed= 2.5x 
FFmpeg stderr: video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
FFmpeg stderr: [aac @ 0x55e00dfff840] Qavg: 65536.000
FFmpeg stderr: 
Conversão concluída



The
muxing overhead: unknown
only appears when the error occurs and the conversion is complete.

I've already tried changing the video and audio encoders, as well as the various input and output parameters of the conversion. I also tried updating ffmpeg (it's already on the latest version, using fluent-ffmpeg,
"fluent-ffmpeg": "^2.1.3",
)

I would like to understand why this happens on some devices and how to fix it. Thanks.