
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (99)
-
Qu’est ce qu’un éditorial
21 juin 2013, parEcrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
Vous pouvez personnaliser le formulaire de création d’un éditorial.
Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...) -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...) -
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 (...)
Sur d’autres sites (6388)
-
Android FFmpeg sometimes works and sometimes crashes
20 novembre 2013, par Pawel CalaI compiled FFmpeg for Android ( https://gitorious.org/android-ffmpeg ) but when I'm trying to do some operations ( f.e filters cropping, transpose, trim etc ) it crashes in 5 on 10 cases.
Error logs are not the same so I assume that it might be caused by memory issues.
I'm using OSX, NDK android-ndk-r9b : darwing x86_64.
Native ffmpeg method is passing args to ffmpeg.c main method. It's executed in AsyncTask in Activity.
Thanks in advanceEDIT :
I forgot to mention that programs algorithm runs like that :
Press Button - > Open Camera Intent - > Start recording - > After recording copy file to project folder ( on SD card ) - > Open edit activity + Start asynctaskEDIT2 :
Tested on HTC ONE with different video resolutionsVersion and config of ffmpeg
11-20 12:15:23.001: I/ff-log(19091): ffmpeg version 0.10.2.git
11-20 12:15:23.001: I/ff-log(19091): Copyright (c) 2000-2012 the FFmpeg developers
11-20 12:15:23.001: I/ff-log(19091): built on Nov 20 2013 12:12:46 with gcc 4.6 20120106 (prerelease)
11-20 12:15:23.001: I/ff-log(19091): configuration: --target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm --cpu=armv7-a --disable-ffplay --disable-ffserver --disable-network --disable-avdevice --enable-protocol=file --enable-hwaccel=mpeg4_vaapi --enable-hwaccel=h264_vaapi --sysroot=/Users/dpc/Developer/android-ndk-r9b/platforms/android-9/arch-arm --disable-decoder=h264_vdpau --prefix=build/armv7-a --disable-asm --enable-small --disable-everything --enable-decoder=mjpeg --enable-parser=mjpeg --enable-muxer=mp4 --enable-muxer=h264 --enable-muxer=h263 --enable-muxer=yuv4mpegpipe --enable-muxer=mov --enable-demuxer=mpegvideo --enable-demuxer=mjpeg --enable-demuxer=image2 --enable-demuxer=mp4 --enable-demuxer=aac --enable-demuxer=ac3 --enable-demuxer=mp3 --enable-demuxer=yuv4mpegpipe --enable-demuxer=mov --enable-decoder=mpegvideo --enable-decoder=mpeg4 --enable-decoder=mp3 --enable-decoder=ac3 --enable-decoder=aac --enable-decoder=h264 --enable-decoder=h263 --enable-decoder=rawvideo --enable-decoder=yuv4 --enable-decoder=png --enableSample comand :
1-20 12:15:22.991: I/FFMPEG(19091): CMD:-i file:/storage/emulated/0/.project/videos/mac_video_tmp.mp4 -vf crop=1079:1079:0:420 -vcodec mpeg4 -sameq -acodec copy file:/storage/emulated/0/.project/videos/croppedVid.mp4
Some output errors :
1st type :
11-20 12:15:23.011: I/ff-log(19091): libavutil 51. 46.100 / 51. 46.100
11-20 12:15:23.011: I/ff-log(19091): libavcodec 54. 14.101 / 54. 14.101
11-20 12:15:23.011: I/ff-log(19091): libavformat 54. 3.100 / 54. 3.100
11-20 12:15:23.011: I/ff-log(19091): libavfilter 2. 70.100 / 2. 70.100
11-20 12:15:23.011: I/ff-log(19091): libswscale 2. 1.100 / 2. 1.100
11-20 12:15:23.011: I/ff-log(19091): libswresample 0. 11.100 / 0. 11.100
11-20 12:15:23.011: I/ff-log(19091): before parsing options
11-20 12:15:23.011: I/ff-log(19091): before parsing options
11-20 12:15:23.011: I/ff-log(19091): parse options
11-20 12:15:23.011: I/ff-log(19091): prepare app arguments !!! NOT defined(_WIN32) && !defined(__MINGW32CE__) !
11-20 12:15:23.011: I/ff-log(19091): after prepare app arguments
11-20 12:15:23.011: I/ff-log(19091): ffurl_open: file:/storage/emulated/0/.project/videos/mac_video_tmp.mp4, 1
11-20 12:15:23.011: I/ff-log(19091): ffurl_alloc: file:/storage/emulated/0/.project/videos/mac_video_tmp.mp4, 1
11-20 12:15:23.011: I/ff-log(19091): ffurl_alloc: file
11-20 12:15:23.011: I/ff-log(19091): ffurl_open alloc: 0
11-20 12:15:23.011: I/ff-log(19091): ffurl_connect
11-20 12:15:23.011: I/ff-log(19091): ffurl_open connect: 0
11-20 12:15:23.011: I/ff-log(19091): Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
11-20 12:15:23.011: I/ff-log(19091): ISO: File Type Major Brand: isom
11-20 12:15:23.021: I/ff-log(19091): File position before avformat_find_stream_info() is 8458240
11-20 12:15:23.041: A/libc(19091): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 19091 (t.android.utils)Second type :
11-20 12:17:04.800: I/ff-log(19632): libavutil 51. 46.100 / 51. 46.100
11-20 12:17:04.800: I/ff-log(19632): libavcodec 54. 14.101 / 54. 14.101
11-20 12:17:04.800: I/ff-log(19632): libavformat 54. 3.100 / 54. 3.100
11-20 12:17:04.800: I/ff-log(19632): libavfilter 2. 70.100 / 2. 70.100
11-20 12:17:04.800: I/ff-log(19632): libswscale 2. 1.100 / 2. 1.100
11-20 12:17:04.800: I/ff-log(19632): libswresample 0. 11.100 / 0. 11.100
11-20 12:17:04.800: I/ff-log(19632): before parsing options
11-20 12:17:04.800: I/ff-log(19632): before parsing options
11-20 12:17:04.800: I/ff-log(19632): parse options
11-20 12:17:04.800: I/ff-log(19632): prepare app arguments !!! NOT defined(_WIN32) && !defined(__MINGW32CE__) !
11-20 12:17:04.800: I/ff-log(19632): after prepare app arguments
11-20 12:17:04.800: I/ff-log(19632): opt_output_file ܞ�f��f��f��f���flated/0/.project/videos/mac_video_tmp.mp4
11-20 12:17:04.800: I/ff-log(19632): ffurl_alloc: ܞ�f��f��f��f���flated/0/.project/videos/mac_video_tmp.mp4, 0
11-20 12:17:04.800: I/ff-log(19632): ffurl_alloc: file
11-20 12:17:04.800: I/ff-log(19632): ffurl_open: ܞ�f��f��f��f���flated/0/.project/videos/mac_video_tmp.mp4, 2
11-20 12:17:04.800: I/ff-log(19632): ffurl_alloc: ܞ�f��f��f��f���flated/0/.project/videos/mac_video_tmp.mp4, 2
11-20 12:17:04.800: I/ff-log(19632): ffurl_alloc: file
11-20 12:17:04.800: I/ff-log(19632): ffurl_open alloc: 0
11-20 12:17:04.800: I/ff-log(19632): ffurl_connect
11-20 12:17:04.800: I/ff-log(19632): ffurl_open connect: -2
11-20 12:17:04.800: I/ff-log(19632): ffurl_open FAIL
11-20 12:17:04.800: I/ff-log(19632): ܞ�f��f��f��f���flated/0/.project/videos/mac_video_tmp.mp4: No such file or directory( CHARSER IS AS IT'S IN OUTPUT LOGCAT )
3rd type :
11-20 12:18:23.243: I/ff-log(19867): libavutil 51. 46.100 / 51. 46.100
11-20 12:18:23.243: I/ff-log(19867): libavcodec 54. 14.101 / 54. 14.101
11-20 12:18:23.243: I/ff-log(19867): libavformat 54. 3.100 / 54. 3.100
11-20 12:18:23.243: I/ff-log(19867): libavfilter 2. 70.100 / 2. 70.100
11-20 12:18:23.243: I/ff-log(19867): libswscale 2. 1.100 / 2. 1.100
11-20 12:18:23.243: I/ff-log(19867): libswresample 0. 11.100 / 0. 11.100
11-20 12:18:23.243: I/ff-log(19867): before parsing options
11-20 12:18:23.243: I/ff-log(19867): before parsing options
11-20 12:18:23.243: I/ff-log(19867): parse options
11-20 12:18:23.243: I/ff-log(19867): prepare app arguments !!! NOT defined(_WIN32) && !defined(__MINGW32CE__) !
11-20 12:18:23.243: I/ff-log(19867): after prepare app arguments
11-20 12:18:23.243: I/ff-log(19867): Unknown decoder '��f('
11-20 12:18:23.243: I/ff-log(19867): exit_program 1
11-20 12:18:23.243: I/ff-log(19867): exit_program 1
11-20 12:18:23.243: I/ff-log(19867): exit_program 2
11-20 12:18:23.253: A/libc(19867): @@@ ABORTING: invalid address or address of corrupt block 0x1d3422d passed to dlfree
11-20 12:18:23.253: A/libc(19867): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 20393 (AsyncTask #2)4th type :
11-20 12:20:07.214: I/ff-log(20660): libavutil 51. 46.100 / 51. 46.100
11-20 12:20:07.214: I/ff-log(20660): libavcodec 54. 14.101 / 54. 14.101
11-20 12:20:07.214: I/ff-log(20660): libavformat 54. 3.100 / 54. 3.100
11-20 12:20:07.214: I/ff-log(20660): libavfilter 2. 70.100 / 2. 70.100
11-20 12:20:07.214: I/ff-log(20660): libswscale 2. 1.100 / 2. 1.100
11-20 12:20:07.214: I/ff-log(20660): libswresample 0. 11.100 / 0. 11.100
11-20 12:20:07.214: I/ff-log(20660): before parsing options
11-20 12:20:07.214: I/ff-log(20660): before parsing options
11-20 12:20:07.214: I/ff-log(20660): parse options
11-20 12:20:07.214: I/ff-log(20660): prepare app arguments !!! NOT defined(_WIN32) && !defined(__MINGW32CE__) !
11-20 12:20:07.214: I/ff-log(20660): after prepare app arguments
11-20 12:20:07.214: I/ff-log(20660): Unknown decoder ''
11-20 12:20:07.214: I/ff-log(20660): exit_program 1
11-20 12:20:07.214: A/libc(20660): Fatal signal 11 (SIGSEGV) at 0x2d007165 (code=1), thread 21017 (AsyncTask #2) -
Transcoding/ Converting mpeg to h264 using ffmpeg h264_nvenc
15 septembre 2024, par MustafaI'm trying to transcode a video rendered by Davinci Resolve, using
ffmpeg
from mpeg4 to h264, on Ubuntu, using the following command.

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mov -c:a copy -c:v h264_nvenc -b:v 8M -preset 7 output-h264_nvenc-p7.mp4 -v verbose



And my Nvidia card is
NVIDIA GeForce GTX 1650
.

I'm gettting the following error :


[mpeg4 @ 0x55a893ed3200] Video width 3840 not within range from 48 to 2032
[mpeg4 @ 0x55a893ed3200] Failed setup for format cuda: hwaccel initialisation returned error.



And here's the complete output. The command produces an output but its quality is significantly less than the original.


built with gcc 13 (Ubuntu 13.2.0-23ubuntu4)
 configuration: --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared --enable-gpl --enable-libx264
 libavutil 59. 36.100 / 59. 36.100
 libavcodec 61. 13.100 / 61. 13.100
 libavformat 61. 5.101 / 61. 5.101
 libavdevice 61. 2.101 / 61. 2.101
 libavfilter 10. 2.102 / 10. 2.102
 libswscale 8. 2.100 / 8. 2.100
 libswresample 5. 2.100 / 5. 2.100
 libpostproc 58. 2.100 / 58. 2.100
-vsync is deprecated. Use -fps_mode
Passing a number to -vsync is deprecated, use a string argument as described in the manual.
Selecting decoder 'mpeg4' because of requested hwaccel method cuda
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
 Metadata:
 major_brand : qt 
 minor_version : 512
 compatible_brands: qt 
 creation_time : 2024-09-15T04:25:29.000000Z
 encoder : Blackmagic Design DaVinci Resolve
 Duration: 00:20:34.87, start: 0.000000, bitrate: 347243 kb/s
 Stream #0:0[0x1]: Video: mpeg4 (Simple Profile), 1 reference frame (mp4v / 0x7634706D), yuv420p(bt709/bt709/unknown, left), 3840x2160 [SAR 1:1 DAR 16:9], 345703 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
 Metadata:
 creation_time : 2024-09-15T04:25:29.000000Z
 handler_name : VideoHandler
 vendor_id : 
 encoder : MPEG4 Video
 timecode : 01:00:00:00
 Stream #0:1[0x2]: Audio: pcm_s16le (lpcm / 0x6D63706C), 48000 Hz, stereo, s16, 1536 kb/s (default)
 Metadata:
 creation_time : 2024-09-15T04:25:29.000000Z
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]
 Stream #0:2[0x3](eng): Data: none (tmcd / 0x64636D74) (default)
 Metadata:
 creation_time : 2024-09-15T04:25:29.000000Z
 handler_name : TimeCodeHandler
 timecode : 01:00:00:00
[out#0/mp4 @ 0x55a8929e8d80] No explicit maps, mapping streams automatically...
[vost#0:0/h264_nvenc @ 0x55a8929f5880] Created video stream from input stream 0:0
[aost#0:1/copy @ 0x55a893867080] Created audio stream from input stream 0:1
Stream mapping:
 Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (h264_nvenc))
 Stream #0:1 -> #0:1 (copy)
[vost#0:0/h264_nvenc @ 0x55a8929f5880] Starting thread...
[vf#0:0 @ 0x55a8929f17c0] Starting thread...
[vist#0:0/mpeg4 @ 0x55a89293a100] [dec:mpeg4 @ 0x55a8929f4440] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55a8929e0600] Starting thread...
Press [q] to stop, [?] for help
[mpeg4 @ 0x55a893ed3200] NVDEC capabilities:
[mpeg4 @ 0x55a893ed3200] format supported: yes, max_mb_count: 8192
[mpeg4 @ 0x55a893ed3200] min_width: 48, max_width: 2032
[mpeg4 @ 0x55a893ed3200] min_height: 16, max_height: 2032
[mpeg4 @ 0x55a893ed3200] Video width 3840 not within range from 48 to 2032
[mpeg4 @ 0x55a893ed3200] Failed setup for format cuda: hwaccel initialisation returned error.
[graph -1 input from stream 0:0 @ 0x75c970002e40] w:3840 h:2160 pixfmt:yuv420p tb:1/15360 fr:60/1 sar:1/1 csp:bt709 range:unknown
[graph -1 input from stream 0:0 @ 0x75c970002e40] video frame properties congruent with link at pts_time: 0
[h264_nvenc @ 0x55a8929e62c0] Using device cuda0 (type cuda) with h264_nvenc encoder.
[h264_nvenc @ 0x55a8929e62c0] Loaded Nvenc version 12.2
[h264_nvenc @ 0x55a8929e62c0] Nvenc initialized successfully
[h264_nvenc @ 0x55a8929e62c0] The selected preset is deprecated. Use p1 to p7 + -tune or fast/medium/slow.
Output #0, mp4, to 'output-h264_nvenc-p7.mp4':
 Metadata:
 major_brand : qt 
 minor_version : 512
 compatible_brands: qt 
 encoder : Lavf61.5.101
 Stream #0:0: Video: h264 (Main), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/unknown, progressive, left), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 8000 kb/s, 60 fps, 15360 tbn (default)
 Metadata:
 creation_time : 2024-09-15T04:25:29.000000Z
 handler_name : VideoHandler
 vendor_id : 
 timecode : 01:00:00:00
 encoder : Lavc61.13.100 h264_nvenc
 Side data:
 cpb: bitrate max/min/avg: 0/0/8000000 buffer size: 16000000 vbv_delay: N/A
 Stream #0:1: Audio: pcm_s16le (ipcm / 0x6D637069), 48000 Hz, stereo, s16, 1536 kb/s (default)
 Metadata:
 creation_time : 2024-09-15T04:25:29.000000Z
 handler_name : SoundHandler
 vendor_id : [0][0][0][0]



How can I find the cause of the error and resolve it ?


Also is there a way to improve the quality of the output video as it's much lower than the original ? I tried doing the same conversion using
libxh264
(using the CPU) and that produced a far better video.

-
ffmpeg nvdec not available when adding subtitles to mp4
17 février 2019, par whatdoineed2doI have a mp4 video that I want to BURN-IN subtitles (from a .ass file and via
-vf ass=/tmp/conf-notes.ass
) with ffmpeg on a machine with a GTX1060 card however ffmpeg reports that it fails to create the NVDEC decoder.[h264 @ 0xcb9380] Error creating a NVDEC decoder: 1
[h264 @ 0xcb9380] Failed setup for format cuda: hwaccel initialisation returned error.The output file is generated ok but during the creation the CPU is used heavily (I assume for decode) - if I drop the
-vf ass=/tmp/conf-notes.ass
and perform an mp4->mp4 reencode there are no problems.I want to know what I am missing from my command to allow the GPU to perform the decode when an
.ass
file is added to the chain.$ ffmpeg -hwaccel cuvid -i 2019-01-conferance.mp4 -vf ass=/tmp/conf-notes.ass -c:a copy -preset llhq -rc vbr_hq -vb 2M -minrate 500k -maxrate 12M -c:v h264_nvenc export.mp4
ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8 (GCC)
configuration: --arch=x86_64 --bindir=/usr/bin --datadir=/usr/share/ffmpeg --disable-debug --disable-static --disable-stripping --enable-alsa --enable-avfilter --enable-avresample --enable-bzlib --enable-decklink --enable-doc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gpl --enable-iconv --enable-libass --enable-libbluray --enable-libcdio --enable-libdc1394 --enable-libdrm --enable-libfdk-aac --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-librtmp --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-libxcb-shape --enable-libxml2 --enable-libxvid --enable-libzvbi --enable-lv2 --enable-lzma --enable-libndi_newtek --enable-nonfree --enable-openal --enable-opencl --enable-opengl --enable-postproc --enable-pthreads --enable-sdl2 --enable-shared --enable-version3 --enable-xlib --enable-zlib --extra-cflags=-I/usr/include/cuda --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --prefix=/usr --shlibdir=/usr/lib64 --enable-cuda --enable-cuvid --enable-libnpp --enable-nvdec --enable-nvenc --enable-runtime-cpudetect
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2019-01-conferance.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2019-01-12T00:00:06.000000Z
Duration: 00:00:24.07, start: 0.000000, bitrate: 11542 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 11350 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Metadata:
creation_time : 2019-01-12T00:00:07.000000Z
handler_name : Mainconcept MP4 Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
Metadata:
creation_time : 2019-01-12T00:00:07.000000Z
handler_name : Mainconcept MP4 Sound Media Handler
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[h264 @ 0xcb9380] Error creating a NVDEC decoder: 1
[h264 @ 0xcb9380] Failed setup for format cuda: hwaccel initialisation returned error.
[Parsed_ass_0 @ 0x1241c00] Shaper: FriBidi 1.0.2 (SIMPLE) HarfBuzz-ng 1.7.5 (COMPLEX)
[Parsed_ass_0 @ 0x1241c00] Using font provider fontconfig
[Parsed_ass_0 @ 0x1241c00] Added subtitle file: '/tmp/conf-notes.ass' (2 styles, 101 events)The
.ass
file has been generated from a.srt
file viaffmpeg -i foo.srt foo.ass