
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 (84)
-
L’espace de configuration de MediaSPIP
29 novembre 2010, parL’espace de configuration de MediaSPIP est réservé aux administrateurs. Un lien de menu "administrer" est généralement affiché en haut de la page [1].
Il permet de configurer finement votre site.
La navigation de cet espace de configuration est divisé en trois parties : la configuration générale du site qui permet notamment de modifier : les informations principales concernant le site (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (10260)
-
How to add subtitles using FFmpeg-kit ?
17 novembre 2024, par Mohammed BekeleI'm running a Flutter app with Ffmpeg-kit package to burn a subtitle on a video. I have a words list with the timings and map that to generate an srt and ass file, but when executing this it didn't work.


Firstly, here is how I generated the Ass file.


Future<string> _createAssFile() async {
 String filePath = await getAssOutputFilePath();

 final file = File(filePath);
 final buffer = StringBuffer();

 // Write ASS headers
 buffer.writeln('[Script Info]');
 buffer.writeln('Title: Generated ASS');
 buffer.writeln('ScriptType: v4.00+');
 buffer.writeln('Collisions: Normal');
 buffer.writeln('PlayDepth: 0');
 buffer.writeln('Timer: 100,0000');
 buffer.writeln('[V4+ Styles]');
 buffer.writeln(
 'Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding');
 buffer.writeln(
 'Style: Default,Arial,40,&H00FFFFFF,&H000000FF,&H00000000,&H80000000,1,1,1,1,100,100,0,0,1,1,1,2,10,10,10,1');
 buffer.writeln('[Events]');
 buffer.writeln(
 'Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text');

 // Write events (subtitles)
 for (int i = 0; i < widget.words.length; i++) {
 final word = widget.words[i];
 final startTime = _formatAssTime(word['startTime'].toDouble());
 final endTime = _formatAssTime(word['endTime'].toDouble());
 final text = word['word'];

 buffer.writeln('Dialogue: 0,$startTime,$endTime,Default,,0,0,0,,$text');
 }

 await file.writeAsString(buffer.toString());
 return filePath;
 }

 String _formatAssTime(double seconds) {
 final int hours = seconds ~/ 3600;
 final int minutes = ((seconds % 3600) ~/ 60);
 final int secs = (seconds % 60).toInt();
 final int millis = ((seconds - secs) * 1000).toInt() % 1000;

 return '${hours.toString().padLeft(1, '0')}:${minutes.toString().padLeft(2, '0')}:${secs.toString().padLeft(2, '0')}.${(millis ~/ 10).toString().padLeft(2, '0')}';
 }
</string>


Then I used this command which was the official way of adding ass file to a video.


String newCmd = "-i $videoPath -vf ass=$assFilePath -c:a copy $_outputPath";



Yet when executing this command it did not work. However I changed it to this command


String newCmd = "-i $videoPath -i $assFilePath $_outputPath";



Well, that code works but the styling is not being applied. So I tried yet another command to filter and position the ass file.


String newCmd = "-i $videoPath -i $assFilePath -filter_complex \"[0:v][1:s]ass=\\an5:text='%{event.text}',scale=iw*0.8:ih*0.8,setdar=16/9[outv]\" -map [outv] -c:a copy $_outputPath";



This made it even worse, because the app crashed when I ran this. Also there is a log for this command before crashing


F/libc (19624): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x19 in tid 21314 (pool-4-thread-7), pid 19624 (ple.caption_app)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/a15nsxx/a15:14/UP1A.231005.007/A155FXXU1AWKA:user/release-keys'
Revision: '5'
ABI: 'arm64'
Processor: '7'
Timestamp: 2024-07-10 19:27:40.812476860+0300
Process uptime: 1746s
Cmdline: com.example.caption_app
pid: 19624, tid: 21314, name: pool-4-thread-7 >>> com.example.caption_app <<<
uid: 10377
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000019
Cause: null pointer dereference
 x0 0000000000000001 x1 b400006ec98d8660 x2 0000000000000000 x3 0000000000000002
 x4 0000006f62d1ea12 x5 b400006e04f745ea x6 352f35372f64352f x7 7f7f7f7f7f7f7f7f
 x8 632ace36577a905e x9 632ace36577a905e x10 0000006e191378c0 x11 0000000000000001
 x12 0000000000000001 x13 0000000000000000 x14 0000000000000004 x15 0000000000000008
 x16 0000006e27ffa358 x17 0000006e27dbfb00 x18 0000006e00d48000 x19 0000006f62d1f0e8
 x20 0000006f62d24000 x21 0000006e27ffc5d0 x22 0000006e27ffc5f0 x23 0000000000000000
 x24 b400006f3f089248 x25 0000006f62d1f220 x26 b400006f3f057b20 x27 0000000000000002
 x28 0000000000000088 x29 0000006f62d1f100
 lr 0000006e27dbfb0c sp 0000006f62d1f0a0 pc 0000006e27dbfb10 pst 0000000060001000
1 total frames
backtrace:
 #00 pc 0000000000121b10 /data/app/~~oWqjrGA2indQhuEw6u_J2A==/com.example.caption_app-u2Ofk54FVtMc5D-i3SLC6g==/base.apk!libavfilter.so (offset 0x10a46000) (avfilter_inout_free+16) 
Lost connection to device.



I tried the normal command in my local machine on Windows, and this is what I used


ffmpeg -i F:\ffmpeg\video.avi -vf subtitles='F\:\\ffmpeg\\caption.srt':force_style='Fontsize=24' F:\ffmpeg\new.mp4



As you can see above when subtitles are used it had an extra backslashes for each path and a pre backslash after the partition letter. But I don't know if this does apply for android devices. How can I make sense of this ?


-
How to combine 100 video clips with transition using FFMPEG ? [closed]
17 octobre 2024, par Muhammad Lutfi RahmawanI've been working on project which involves FFMPEG to process video. The goal is to produce a video from several clips and combine them with transition to each clips. We've succeeded to create video from 20 clips and 19 transitions are applied to merge each clips. But when it comes to a larger amount of clips, say 50, it becomes be failed.


The first thing we do is split the original video into several clips based on user selection and this command is successful (log splitting). Then we combine the clips with transition using below command.


Here is the sample command of FFMPEG which failed :


ffmpeg -y -i /tmp/0.mp4 -i /tmp/1.mp4 -i /tmp/2.mp4 -i /tmp/3.mp4 -i /tmp/4.mp4 -i /tmp/5.mp4 -i /tmp/6.mp4 -i /tmp/7.mp4 -i /tmp/8.mp4 -i /tmp/9.mp4 -i /tmp/10.mp4 -i /tmp/11.mp4 -i /tmp/12.mp4 -i /tmp/13.mp4 -i /tmp/14.mp4 -i /tmp/15.mp4 -i /tmp/16.mp4 -i /tmp/17.mp4 -i /tmp/18.mp4 -i /tmp/19.mp4 -i /tmp/20.mp4 -i /tmp/21.mp4 -i /tmp/22.mp4 -i /tmp/23.mp4 -i /tmp/24.mp4 -i /tmp/25.mp4 -i /tmp/26.mp4 -i /tmp/27.mp4 -i /tmp/28.mp4 -i /tmp/29.mp4 -i /tmp/30.mp4 -i /tmp/31.mp4 -i /tmp/32.mp4 -i /tmp/33.mp4 -i /tmp/34.mp4 -i /tmp/35.mp4 -i /tmp/36.mp4 -i /tmp/37.mp4 -i /tmp/38.mp4 -i /tmp/39.mp4 -i /tmp/40.mp4 -i /tmp/41.mp4 -i /tmp/42.mp4 -i /tmp/43.mp4 -i /tmp/44.mp4 -i /tmp/45.mp4 -i /tmp/46.mp4 -i /tmp/47.mp4 -i /tmp/48.mp4 -i /tmp/49.mp4 -filter_complex "[0:v][1:v]xfade=transition=circlecrop:duration=0.5:offset=24.474[tv0];[0:a][1:a]acrossfade=d=0.5[ta0];[tv0][2:v]xfade=transition=circlecrop:duration=0.5:offset=31.674[tv1];[ta0][2:a]acrossfade=d=0.5[ta1];[tv1][3:v]xfade=transition=circlecrop:duration=0.5:offset=37.234[tv2];[ta1][3:a]acrossfade=d=0.5[ta2];[tv2][4:v]xfade=transition=circlecrop:duration=0.5:offset=55.348[tv3];[ta2][4:a]acrossfade=d=0.5[ta3];[tv3][5:v]xfade=transition=circlecrop:duration=0.5:offset=76.07[tv4];[ta3][5:a]acrossfade=d=0.5[ta4];[tv4][6:v]xfade=transition=circlecrop:duration=0.5:offset=82.622[tv5];[ta4][6:a]acrossfade=d=0.5[ta5];[tv5][7:v]xfade=transition=circlecrop:duration=0.5:offset=103.122[tv6];[ta5][7:a]acrossfade=d=0.5[ta6];[tv6][8:v]xfade=transition=circlecrop:duration=0.5:offset=114.502[tv7];[ta6][8:a]acrossfade=d=0.5[ta7];[tv7][9:v]xfade=transition=circlecrop:duration=0.5:offset=122.258[tv8];[ta7][9:a]acrossfade=d=0.5[ta8];[tv8][10:v]xfade=transition=circlecrop:duration=0.5:offset=130.094[tv9];[ta8][10:a]acrossfade=d=0.5[ta9];[tv9][11:v]xfade=transition=circlecrop:duration=0.5:offset=134.33[tv10];[ta9][11:a]acrossfade=d=0.5[ta10];[tv10][12:v]xfade=transition=circlecrop:duration=0.5:offset=141.85[tv11];[ta10][12:a]acrossfade=d=0.5[ta11];[tv11][13:v]xfade=transition=circlecrop:duration=0.5:offset=145.59[tv12];[ta11][13:a]acrossfade=d=0.5[ta12];[tv12][14:v]xfade=transition=circlecrop:duration=0.5:offset=154.314[tv13];[ta12][14:a]acrossfade=d=0.5[ta13];[tv13][15:v]xfade=transition=circlecrop:duration=0.5:offset=155.998[tv14];[ta13][15:a]acrossfade=d=0.5[ta14];[tv14][16:v]xfade=transition=circlecrop:duration=0.5:offset=164.924[tv15];[ta14][16:a]acrossfade=d=0.5[ta15];[tv15][17:v]xfade=transition=circlecrop:duration=0.5:offset=168.184[tv16];[ta15][17:a]acrossfade=d=0.5[ta16];[tv16][18:v]xfade=transition=circlecrop:duration=0.5:offset=174.796[tv17];[ta16][18:a]acrossfade=d=0.5[ta17];[tv17][19:v]xfade=transition=circlecrop:duration=0.5:offset=186.724[tv18];[ta17][19:a]acrossfade=d=0.5[ta18];[tv18][20:v]xfade=transition=circlecrop:duration=0.5:offset=191.23[tv19];[ta18][20:a]acrossfade=d=0.5[ta19];[tv19][21:v]xfade=transition=circlecrop:duration=0.5:offset=195.778[tv20];[ta19][21:a]acrossfade=d=0.5[ta20];[tv20][22:v]xfade=transition=circlecrop:duration=0.5:offset=198.118[tv21];[ta20][22:a]acrossfade=d=0.5[ta21];[tv21][23:v]xfade=transition=circlecrop:duration=0.5:offset=201.506[tv22];[ta21][23:a]acrossfade=d=0.5[ta22];[tv22][24:v]xfade=transition=circlecrop:duration=0.5:offset=204.422[tv23];[ta22][24:a]acrossfade=d=0.5[ta23];[tv23][25:v]xfade=transition=circlecrop:duration=0.5:offset=210.243[tv24];[ta23][25:a]acrossfade=d=0.5[ta24];[tv24][26:v]xfade=transition=circlecrop:duration=0.5:offset=215.417[tv25];[ta24][26:a]acrossfade=d=0.5[ta25];[tv25][27:v]xfade=transition=circlecrop:duration=0.5:offset=219.057[tv26];[ta25][27:a]acrossfade=d=0.5[ta26];[tv26][28:v]xfade=transition=circlecrop:duration=0.5:offset=221.277[tv27];[ta26][28:a]acrossfade=d=0.5[ta27];[tv27][29:v]xfade=transition=circlecrop:duration=0.5:offset=224.875[tv28];[ta27][29:a]acrossfade=d=0.5[ta28];[tv28][ta28][30:v][30:a][31:v][31:a][32:v][32:a][33:v][33:a][34:v][34:a][35:v][35:a][36:v][36:a][37:v][37:a][38:v][38:a][39:v][39:a][40:v][40:a][41:v][41:a][42:v][42:a][43:v][43:a][44:v][44:a][45:v][45:a][46:v][46:a][47:v][47:a][48:v][48:a][49:v][49:a]concat=n=21:v=1:a=1[v][a]" -map "[v]" -map "[a]" /tmp/export-clip-94989d271066ace00459-9ba57089-d833-4cef-beb7-3c847e9958af.mp4



The error is as follows :


ffmpeg version 7.1 Copyright (c) 2000-2024 the FFmpeg developers\n built with gcc 13 (Ubuntu 13.2.0-23ubuntu4)\n configuration: --disable-debug --disable-doc --disable-ffplay --enable-alsa --enable-cuda-llvm --enable-cuvid --enable-ffprobe --enable-gpl --enable-libaom --enable-libass --enable-libdav1d --enable-libfdk_aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libkvazaar --enable-liblc3 --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libplacebo --enable-librav1e --enable-librist --enable-libshaderc --enable-libsrt --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nonfree --enable-nvdec --enable-nvenc --enable-opencl --enable-openssl --enable-stripping --enable-vaapi --enable-vdpau --enable-version3 --enable-vulkan\n libavutil 59. 39.100 / 59. 39.100\n libavcodec 61. 19.100 / 61. 19.100\n libavformat 61. 7.100 / 61. 7.100\n libavdevice 61. 3.100 / 61. 3.100\n libavfilter 10. 4.100 / 10. 4.100\n libswscale 8. 3.100 / 8. 3.100\n libswresample 5. 3.100 / 5. 3.100\n libpostproc 58. 3.100 / 58. 3.100\n[mov,mp4,m4a,3gp,3g2,mj2 @ 0x56102f0e5580] moov atom not found\n[in#0 @ 0x56102f0ed480] Error opening input: Invalid data found when processing input\nError opening input file /tmp/0.mp4.\nError opening input files: Invalid data found when processing input\n



It stated that /tmp/0.mp4 has invalid data
moov atom not found


This only occurs when the number of clips > 20


Additional info :


- 

- I can run without any error in my local environment using Windows 11 (FFMPEG version N-114902-g277f051ff6-20240421)
- It fails on AWS Fargate environment using Ubuntu base image docker (FFMPEG version 7.1)






I hope I can get a solutive answer based on my case at least I get what is wrong with my approach


-
FFMpegCore.Exceptions.FFMpegException : 'ffmpeg exited with non-zero exit-code'
15 octobre 2024, par secretplyI am looking to retrieve the
loudnorm
data in JSON format from FFmpeg (using FFMpegCore 5.1.0). This is the code I currently have :

await FFMpegArguments
 .FromPipeInput(new StreamPipeSource(fileStream.OpenReadStream()))
 .OutputToPipe(new StreamPipeSink(outputStream), options => options.WithCustomArgument("-af loudnorm=print_format=json"))
 .ProcessAsynchronously();



This is the exception I get, which is similar to this old GitHub issue.


System.IO.IOException: 'Pipe is broken.'

This exception was originally thrown at this call stack:
 System.IO.Pipes.PipeStream.PipeValueTaskSource.GetResult(short)
 System.IO.Pipes.PipeStream.PipeValueTaskSource.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(short)
 System.IO.Stream.CopyToAsync.__Core|27_0(System.IO.Stream, System.IO.Stream, int, System.Threading.CancellationToken) in Stream.cs
 FFMpegCore.Arguments.InputPipeArgument.ProcessDataAsync(System.Threading.CancellationToken)
 FFMpegCore.Arguments.PipeArgument.During(System.Threading.CancellationToken)
 FFMpegCore.FFMpegArguments.During(System.Threading.CancellationToken)
 FFMpegCore.FFMpegArgumentProcessor.Process(Instances.ProcessArguments, System.Threading.CancellationTokenSource)
 FFMpegCore.FFMpegArgumentProcessor.ProcessAsynchronously(bool, FFMpegCore.FFOptions)



I am trying to replicate the following FFmpeg command and JSON output :


ffmpeg -i "file.flac" -af loudnorm=print_format=json -f null -



{
 "input_i" : "-21.87",
 "input_tp" : "-7.13",
 "input_lra" : "5.00",
 "input_thresh" : "-32.04",
 "output_i" : "-24.76",
 "output_tp" : "-10.36",
 "output_lra" : "4.10",
 "output_thresh" : "-34.84",
 "normalization_type" : "dynamic",
 "target_offset" : "0.76"
}



If I add
.ForceFormat("null")
to theOutputToPipe
options, I do not get the exception but when I read the output stream, it returns an empty string. In the issue mentioned, I know they mentioned a way to get theFFMpegErrorOutput
property but I do not know how that can be done. I could not find an example of outputting a stream as JSON. If anyone can point me in the right direction or can provide an alternative solution, I would greatly appreciate it.

Update


I made a change to the
StreamPipeSource()
method where I copied over the uploaded file to aMemoryStream
. With this change, the followingFFMpegException
is thrown.

FFMpegCore.Exceptions.FFMpegException: 'ffmpeg exited with non-zero exit-code (-22 - ffmpeg version 7.0.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
 built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[in#0 @ 000001bda86c67c0] Error opening input: Invalid argument
Error opening input file \\.\pipe\FFMpegCore_c6e5c.
Error opening input files: Invalid argument)'