
Recherche avancée
Autres articles (39)
-
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...) -
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 (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (4880)
-
How can I stream mjpeg file as rtsp
24 août 2013, par Ilya YevlampievWe have an mjpeg video, obtained from the webcam and stored into *.avi file, still encoded as mjpeg.
We need to restream this file as rtsp (and stil preserve the mjpeg there, i.e. no decoding). The goal is to emulate the webcam this video was obtained from for the software that processes the video. The file can be open with vlc/ffplay with no problems. The ffmpeg behaves like it is streaming it, however, ffplay/vlc can't open this stream.
We tried to stream if with gstreamer.
1) we fount no free rtsp sink element for gstreamer pipeline. So, is there a free analogue for rtspsink to launch this pipeline with gst-launch ? we need and only cast, so we don't need so advanced element as rtspsink is.
2) we also tried to build own simple rtsp server as described in http://weeklybuild.com/2013/01/creating-an-rtsp-stream-with-gstreamer/
replacing videotestsrc with filesrc ; but what kind of elements we should use there ? usage of an only filesrc doesn't help ; we get the same problem as if we stream with ffmpeg. But what kind of lements we need there, if we dont' wan to decode/encode it, just to stream the file (to reproduce the thing what the webcam actually does).
$ ffplay rtsp://127.0.0.1:8554/test -loglevel debug
avplay version 0.8.5-6:0.8.5-1, Copyright (c) 2003-2012 the Libav developers
built on Jan 13 2013 12:05:48 with gcc 4.7.2
configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.5-1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
avutil configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.4-1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
avcodec configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.4-1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
avformat configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.4-1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
swscale configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.4-1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
postproc configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.8.4-1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable- postproc --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
libavutil 51. 22. 1 / 51. 22. 1
libavcodec 53. 35. 0 / 53. 35. 0
libavformat 53. 21. 1 / 53. 21. 0
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 15. 0 / 2. 15. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 52. 0. 0 / 52. 0. 0
[rtsp @ 0x7f558c0008c0] method DESCRIBE failed: 503 Service Unavailable
[rtsp @ 0x7f558c0008c0] CSeq: 2
Server: GStreamer RTSP server
Date: Thu, 22 Aug 2013 07:49:30 GMT
rtsp://127.0.0.1:8554/test: Invalid data found when processing inputAnd everything is okay when I try gstreamer server built as in example, i.e. using videotestsrc
-
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 -
How to write HEVC frames to file using FFMpeg ?
2 mai 2018, par boneillI have the following code used to output H264 frames to an mp4 file and this works fine :
typedef struct _AvFileStreamContext
{
AVStream *pStreams[AV_FRAME_MAX];
AVCodecContext *streamCodec;
AVFormatContext *pAvContext; // initialised with avformat_alloc_output_context2 for mp4 container
}_AvFileStreamContext;
static void WriteImageFrameToFile(const unsigned char * frame,
const int frameSize,
const struct timeval *frameTime,
AvFileStreamContext *pContext,
int keyFrame)
{
AVStream *stream pContext->pStreams[AV_FRAME_VIDEO];
AVPacket pkt;
av_init_packet(&pkt);
if (keyFrame)
{
pkt.flags |= AV_PKT_FLAG_KEY;
}
pkt.stream_index = stream->index;
pkt.data = (unsigned char*)frame;
pkt.size = frameSize;
int ptsValue = round((float)( ( (frameTime->tv_sec - pContext->firstFrameTime.tv_sec ) * 1000000 +
(frameTime->tv_usec - pContext->firstFrameTime.tv_usec)) * pContext->streamCodec->time_base.den ) / 1000000);
// Packets PTS/DTS must be in Stream time-base units before writing so
// rescaling between coder and stream time bases is required.
pkt.pts = av_rescale_q(ptsValue, pContext->streamCodec->time_base, stream->time_base);
pkt.dts = av_rescale_q(ptsValue, pContext->streamCodec->time_base, stream->time_base);
av_interleaved_write_frame(pContext->pAvContext, &pkt);
}Once all frames have been received I call the following :
av_write_trailer(pContext->pAvContext);
avio_close(pContext->pAvContext->pb);The above function is supplied from a circular buffer of frames where each entry in the buffer represents a frame for H264. I am trying to understand how I can adapt this to handle H265/HEVC frames. When I blindly try and use this for H265 frames I end up with an mp4 file where each frame only contains a third of a complete frame i.e.
The video continues to play for the correct duration but each frame is only a third of a complete frame. The implementation for receiving frames is the same as H264 and it is my understanding that with H265 each of the buffers I am receiving represents a ’tile’. In my case these are tile columns of which 3 tiles make up one frame. That said, it would seem that the above function would need to be adapted to combine 3 tiles until an end of frame marker is received. I have trawled the FFMpeg v3.3 documentation to find out how I can achieve this but have had limited luck.
I have tried to use the following function call to combine frames :uint8_t * outputBuffer;
unsigned int bufferSize;
stream->parser = av_parser_init (AV_CODEC_ID_HEVC);
int rc = av_parser_parse2(stream->parser, pContext->pAvContext,
&outputBuffer, &bufferSize,
frame, frameSize,
pkt.pts, pkt.dts, -1);It seems that the above call will ultimately call ;
static int hevc_parse(AVCodecParserContext *s,
AVCodecContext *avctx,
const uint8_t **poutbuf, int *poutbuf_size,
const uint8_t *buf, int buf_size)Followed by :
int ff_combine_frame(ParseContext *pc, int next,
const uint8_t **buf, int *buf_size)So it seems this is the correct path, however when I plug this all in the resulting mp4 file is not playable under gstreamer with the following errors :
Prerolling...
(gst-play-1.0:11225): GStreamer-WARNING **: gstpad.c:4943:store_sticky_event: Sticky event misordering, got 'segment' before 'caps'
Redistribute latency...
(gst-play-1.0:11225): GStreamer-WARNING **: gstpad.c:4943:store_sticky_event: Sticky event misordering, got 'segment' before 'caps'And I get the following errors (snippet of errors) from VLC where the frames appear to be correct in terms of height and width but are corrupt or incomplete during playback :
[hevc @ 0x7f8128c30440] PPS changed between slices.
[hevc @ 0x7f8128c42080] PPS changed between slices.
[hevc @ 0x7f8128c53ce0] PPS changed between slices.
[00007f8110293be8] freetype spu text error: Breaking unbreakable line
[hevc @ 0x7f8128c1e0a0] First slice in a frame missing.
[hevc @ 0x7f8128c1e0a0] First slice in a frame missing.
[hevc @ 0x7f8128c1e0a0] Could not find ref with POC 7
[hevc @ 0x7f8128c30440] PPS changed between slices.
[hevc @ 0x7f8128c42080] PPS changed between slices.
[hevc @ 0x7f8128c53ce0] PPS changed between slices.
[hevc @ 0x7f8128c1e0a0] First slice in a frame missing.
[hevc @ 0x7f8128c1e0a0] First slice in a frame missing.
[hevc @ 0x7f8128c1e0a0] Could not find ref with POC 15
[hevc @ 0x7f8128c30440] PPS changed between slices.
[hevc @ 0x7f8128c42080] PPS changed between slices.
[hevc @ 0x7f8128c53ce0] PPS changed between slices.
[hevc @ 0x7f8128c1e0a0] First slice in a frame missing.
[hevc @ 0x7f8128c1e0a0] First slice in a frame missing.
[hevc @ 0x7f8128c1e0a0] Could not find ref with POC 23Here is an example frame from the VLC playback where you can just about see the outline of someone :
It should be noted that when using the call to av_parser_parse2(), a frame is only passed to av_interleaved_write_frame() when outputBuffer is populated which seems to take a number of tiles (greater than 3) so I am possibly not setting something correctly.
- Can I tell FFMpeg that a particular tile is an end of frame ?
- Should I be using some other FFMpeg call to combine H265 tiles ?
- Am I misunderstanding how HEVC operates ? (probably)
- Once combined it the call to av_interleaved_write_frame() still valid ?
- Note that use of libx265 is not possible.
Any help appreciated.