
Recherche avancée
Autres articles (56)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
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 (9937)
-
Statically built FFMPEG binary segmentation fault
12 février 2020, par stevendesuI want to create a custom build of FFMPEG which rips out everything except for the ability to transmux HLS videos to MP4, and I need this build to be 100% static with no external dependencies
I tried using the following configuration :
./configure \
--extra-cflags='-static -static-libstdc++ -static-libgcc' \
--extra-cxxflags='-static -static-libstdc++ -static-libgcc' \
--extra-ldflags='-static -static-libstdc++ -static-libgcc' \
--pkg-config-flags='--static' \
--enable-static \
--disable-shared \
--disable-runtime-cpudetect \
--disable-autodetect \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-avdevice \
--disable-swresample \
--disable-swscale \
--disable-postproc \
--disable-pthreads \
--disable-w32threads \
--disable-os2threads \
--enable-network \
--disable-dct \
--disable-dwt \
--disable-error-resilience \
--disable-lsp \
--disable-lzo \
--disable-mdct \
--disable-rdft \
--disable-fft \
--disable-faan \
--disable-pixelutils \
--disable-encoders \
--disable-decoders \
--disable-hwaccels \
--disable-muxers \
--enable-muxer=mov \
--enable-muxer=mp4 \
--disable-demuxers \
--enable-demuxer=hls \
--enable-demuxer=mpegts \
--enable-demuxer=h264 \
--enable-demuxer=aac \
--disable-parsers \
--enable-parser=h264 \
--enable-parser=aac \
--disable-bsfs \
--disable-protocols \
--enable-protocol=tcp \
--enable-protocol=tls \
--enable-protocol=http \
--enable-protocol=https \
--enable-protocol=hls \
--disable-indevs \
--disable-outdevs \
--disable-devices \
--disable-filters \
--disable-alsa \
--disable-appkit \
--disable-avfoundation \
--disable-bzlib \
--disable-coreimage \
--disable-iconv \
--disable-lzma \
--enable-openssl \
--disable-sndio \
--disable-sdl2 \
--disable-securetransport \
--disable-xlib \
--disable-zlib \
--disable-amf \
--disable-audiotoolbox \
--disable-cuda-llvm \
--disable-cuvid \
--disable-d3d11va \
--disable-dxva2 \
--disable-ffnvcodec \
--disable-nvdec \
--disable-nvenc \
--disable-v4l2-m2m \
--disable-vaapi \
--disable-vdpau \
--disable-videotoolbox \
--disable-debugThis looked about like what I wanted :
install prefix /usr/local
source path .
C compiler gcc
C library glibc
ARCH x86 (generic)
big-endian no
runtime cpu detection no
standalone assembly yes
x86 assembler nasm
MMX enabled yes
MMXEXT enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AESNI enabled yes
AVX enabled yes
AVX2 enabled yes
AVX-512 enabled yes
XOP enabled yes
FMA3 enabled yes
FMA4 enabled yes
i686 features enabled yes
CMOV is fast yes
EBX available yes
EBP available yes
debug symbols no
strip symbols yes
optimize for size no
optimizations yes
static yes
shared no
postprocessing support no
network support yes
threading support no
safe bitstream reader yes
texi2html enabled no
perl enabled yes
pod2man enabled yes
makeinfo enabled no
makeinfo supports HTML no
External libraries:
openssl
External libraries providing hardware acceleration:
Libraries:
avcodec avfilter avformat avutil
Programs:
ffmpeg
Enabled decoders:
Enabled encoders:
Enabled hwaccels:
Enabled parsers:
aac h264
Enabled demuxers:
aac h264 hls mpegts
Enabled muxers:
mov mp4
Enabled protocols:
hls http https tcp tls
Enabled filters:
aformat anull atrim format hflip null transpose trim vflip
Enabled bsfs:
null
Enabled indevs:
Enabled outdevs:
License: LGPL version 2.1 or laterIt included several filters which I won’t ever need or use, but these filters are pulled in automatically if you don’t specify
--disable-avfilter
, and specifying--disable-avfilter
prevents theffmpeg
binary from being produced. So I’m stuck with those.Using these parameters and then running
make
, I received a binary that was about 5.9 MB in size and looked right :$> ldd ffmpeg
not a dynamic executableBut when I try to run it :
$> ./ffmpeg -version
Segmentation faultUsing valgrind to try and inspect the cause of the segmentation fault :
$> valgrind ./ffmpeg -version
.... lots of stuff ...
==61362== Jump to the invalid address stated on the next line
==61362== at 0x0: ???
==61362== by 0x70BB1B: ??? (in /src/FFmpeg/ffmpeg)
==61362== by 0x70B2E6: ??? (in /src/FFmpeg/ffmpeg)
==61362== by 0x4033F9: ??? (in /src/FFmpeg/ffmpeg)
==61362== by 0x1FFF000677: ???
==61362== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==61362==
==61362==
==61362== Process terminating with default action of signal 11 (SIGSEGV)
==61362== Bad permissions for mapped region at address 0x0
==61362== at 0x0: ???
==61362== by 0x70BB1B: ??? (in /src/FFmpeg/ffmpeg)
==61362== by 0x70B2E6: ??? (in /src/FFmpeg/ffmpeg)
==61362== by 0x4033F9: ??? (in /src/FFmpeg/ffmpeg)
==61362== by 0x1FFF000677: ???
==61362==
==61362== HEAP SUMMARY:
==61362== in use at exit: 0 bytes in 0 blocks
==61362== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==61362==
==61362== All heap blocks were freed -- no leaks are possible
==61362==
==61362== For counts of detected and suppressed errors, rerun with: -v
==61362== Use --track-origins=yes to see where uninitialised values come from
==61362== ERROR SUMMARY: 93 errors from 90 contexts (suppressed: 0 from 0)
Segmentation faultAttempting to access memory at location
0x0
sounds like trying to follow a null pointer. But I’m not sure how to fix this.gdb backtrace
When I first ran
gdb ./ffmpeg
gdb immediately gave me a segmentation fault and I wasn’t kicked into the gdb REPL, so I couldn’t investigateAfter rebuilding ffmpeg I was able to get in this time :
$> gdb ./ffmpeg
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later /gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
/www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
/www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ffmpeg...done.
(gdb) r
Starting program: /src/FFmpeg/ffmpeg
warning: Error disabling address space randomization: Operation not permitted
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x0000000000f9a8d5 in __register_frame_info_bases.part.6 ()
#2 0x00000000004445fd in frame_dummy ()
#3 0x0000000000000001 in ?? ()
#4 0x0000000000ebd20c in __libc_csu_init ()
#5 0x0000000000ebc9d7 in __libc_start_main ()
#6 0x000000000044451a in _start ()
(gdb)I tried grep’ing the code base for
__register_frame_info_bases
and found nothing. So I’m not really sure where to go from hereA fix, but not an explanation
By randomly removing configuration parameters and rebuilding I discovered that
--disable-pthreads
was causing the segmentation fault. When I remove this, ffmpeg runs just fineI don’t know why this is the case, though. Why would they make it possible to remove something that you need to run ?
-
avconv audio and video out of sync
28 juillet 2015, par bram_aertsI have a problem synchronizing audio and video using avconv.
My goal is to process the video stream with opencv and later put the original audio back on the soundless video.
The processed video stream will be at the same period of time as the original video, but will have a starting offset of a few minutes.I tried to simplify the problem with the following code :
filename="inputvideo.mp4"
avconv -i $filename -an -ss 30 test.mp4
avconv -i test.mp4 -vn -ss 30 -i $filename -async 1 testmerged.mp4The second line removing the audio of the original video and shifting it 30 seconds (emulating what the opencv-code will do).
The last line putting the video and original audio (shifted 30 seconds) back together.I assumed if I’d both shift them the same amount of seconds, they would be neatly synchronized, but curiously the video and audio in the resulting movie are out of sync. It is a static delay of about about 3 seconds (audio is behind).
The same problem appears when making an interim mp3 file and using this as audio track for the resulting movie.When searching for a solution I found none that resolve this.
I tried to overcome this issue by using the -vsync/-async options. But since there is no timestamp information in the video this doesn’t solve the problem.
Even with the latest static build of ffmpeg the audio and video are still out of sync.Is there anything I overlooked or is it just impossible to sync audio and video in ffmpeg ?
And if so, What would be a decent and simple replacement for the funcionality I’m looking for ? -
FFMPEG - Converting TS frame to PNG creating invalid images
20 juillet 2015, par spelleyI am attempting to snag a single frame from a TS live stream and generate a PNG image. The command I’ve been using is :
ffmpeg -y -i "filenamehere" -f image2 -vframes 1 -s 250x250 ./snapshot-250x250.png
When doing this on my local Windows machine using the FFMPEG executable, it generates the image as expected. When using Ubuntu, after doing an apt-get install ffmpeg and using the same command, I am generating grey squares with sporadic noise even while targeting the same file with the exact same command.
Here is the (anonymized) output :
[h264 @ 0xa256a0] no frame!
[h264 @ 0xa256a0] non-existing SPS 0 referenced in buffering period
[h264 @ 0xa256a0] non-existing PPS referenced
[h264 @ 0xa256a0] non-existing SPS 0 referenced in buffering period
[h264 @ 0xa256a0] non-existing PPS 0 referenced
[h264 @ 0xa256a0] decode_slice_header error
[h264 @ 0xa256a0] non-existing PPS 0 referenced
[h264 @ 0xa256a0] decode_slice_header error
[h264 @ 0xa256a0] non-existing PPS 0 referenced
[h264 @ 0xa256a0] decode_slice_header error
[h264 @ 0xa256a0] non-existing PPS 0 referenced
[h264 @ 0xa256a0] decode_slice_header error
[h264 @ 0xa256a0] no frame!
[mpegts @ 0xa1d1e0] max_analyze_duration reached
[NULL @ 0xa28080] start time is not set in estimate_timings_from_pts
Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 1000.00 (1000/1)
Input #0, mpegts, from '<file here="here">':
Duration: 00:00:09.07, start: 35968.174711, bitrate: 697 kb/s
Program 1
Stream #0.0[0x100]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 44.52 fps, 1k tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x101]: Audio: aac, 48000 Hz, stereo, s16, 96 kb/s
Stream #0.2[0x102]: Data: [21][0][0][0] / 0x0015
Incompatible pixel format 'yuv420p' for codec 'png', auto-selecting format 'rgb24'
[buffer @ 0xa43480] w:1280 h:720 pixfmt:yuv420p
[avsink @ 0xa28780] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0xa26520] w:1280 h:720 fmt:yuv420p -> w:1280 h:720 fmt:rgb24 flags:0x4
Output #0, image2, to './snapshot-250x250.png':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: png, rgb24, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 1k tbc
Stream mapping:
Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
frame= 1 fps= 0 q=0.0 Lsize= -0kB time=0.01 bitrate= -17.6kbits/s dup=31 drop=0
video:8kB audio:0kB global headers:0kB muxing overhead -100.261749%
</file>The initial "no frame !" I believe is just it seeking to the first valid keyframe (And thus no cause for concern) however the only difference from my Windows output is the inclusion of this line :
Incompatible pixel format 'yuv420p' for codec 'png', auto-selecting format 'rgb24'
Windows has an encoder of Lavc56.46.100 instead of Lavf53.21.1 and the stream mapping line on Windows has more information :
Stream #0:0 -> #0:0 **(h264 (native) -> png (native))**
I’ve attempted to manually seek to frames, change the output format from PNG -> GIF, JPEG and just cant seem to find the issue which has no problems on my local Windows machine. Any advice on where to look would be greatly appreciated ! Below is an example of the garbled output.