
Recherche avancée
Médias (1)
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (45)
-
Librairies et logiciels spécifiques aux médias
10 décembre 2010, parPour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...) -
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 (8073)
-
Why does OpenCV read video faster than FFMPEG ?
17 septembre 2022, par tadejsvI noticed that OpenCV reads video frames almost 2x faster than FFMPEG.


Why is that ? I thought all OpenCV does is call FFMPEG under the hood, possibly adding its own overhead.


Here's the code I use to obtain these results


import cv2
import time
import numpy as np

cap = cv2.VideoCapture("BigBuckBunny.mp4", apiPreference=cv2.CAP_FFMPEG)
frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

start = time.perf_counter()
while True:
 ret, frame = cap.read()
 if ret is False:
 break
 assert frame.shape == (720, 1280, 3)
 assert frame.dtype == np.uint8
end = time.perf_counter()

print(f"{frames/(end-start):.1f} frames per second")
# Output: 692.3 frames per second

cap.release()



For FFMPEG (using the
python-ffmpeg
library :

import ffmpeg
import numpy as np
import time

vid_info = ffmpeg.probe("BigBuckBunny.mp4")['streams'][1]
frames = int(vid_info['nb_frames'])

process1 = (
 ffmpeg
 .input("BigBuckBunny.mp4")
 .output('pipe:', format='rawvideo', pix_fmt='bgr24')
)
print(process1.compile())
# Output: ['ffmpeg', '-i', 'BigBuckBunny.mp4', '-f', 'rawvideo', '-pix_fmt', 'bgr24', 'pipe:']


process1 = process1.run_async(pipe_stdout=True)

start = time.perf_counter()
while True:
 in_bytes = process1.stdout.read(1280 * 720 * 3)
 if not in_bytes:
 break
 frame = np.frombuffer(in_bytes, np.uint8).reshape([720, 1280, 3])
end = time.perf_counter()
print(f"{frames/(end-start):.1f} frames per second")
# Output: 373.6 frames per second
process1.wait()



Here's information about the video ( 10 minutes length)


Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BigBuckBunny.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isomavc1mp42
 creation_time : 2010-01-10T08:29:06.000000Z
 Duration: 00:09:56.47, start: 0.000000, bitrate: 2119 kb/s
 Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
 Metadata:
 creation_time : 2010-01-10T08:29:06.000000Z
 handler_name : (C) 2007 Google Inc. v08.13.2007.
 vendor_id : [0][0][0][0]
 Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1991 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
 Metadata:
 creation_time : 2010-01-10T08:29:06.000000Z
 handler_name : (C) 2007 Google Inc. v08.13.2007.
 vendor_id : [0][0][0][0]



And FFMPEG and OpenCV versions :


ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers



opencv-python-headless 4.6.0.66



-
configure : Make MSVC version grabbing more robust
13 juin, par Martin Storsjöconfigure : Make MSVC version grabbing more robust
When running plain "cl", to get the MSVC version, it prints the
version header on stderr, while the usage instructions are printed
on stdout. Usually, the version on stderr gets flushed first,
so "head -n1" gets the line it expects, but some times (in particular
when running MSVC wrapped in wine), it can get the usage line
first.Redirect stdout to /dev/null, so we only grab the version among
the lines printed to stderr. This should make the version number
grabbing more robust.At least all relevant versions of MSVC seem to print this specifically
to stderr, not stdout (so we don't risk to miss it) ; checked down
to MSVC 2010.Signed-off-by : Martin Storsjö <martin@martin.st>
-
FFMPEG and MSA1 Codec Issues when Converting WMV to MP4 Video
30 décembre 2023, par user136819I have a WMV video file (around 60 MB size, 01:23:00 length) and I'm running a Windows Server 2016 64-bit machine for testing.

As far as I know, this video file was recorded using Microsoft Live Meeting 2007 back in April 2010 and there is also an associated audio file (which I'm able to play).

I tried to play the video file on my machine using VLC player (latest update), however, I always see this weird MSA1 codec error :




So I tried to resolve this problem by downloading and installing the Combined-Community-Codec-Pack-64bit-2015-10-18, and using its MPC-HC 64-bit player to play the video...
I still couldn't get it to play ! Here are the logs shown by the MPC player :




WM ASF Reader::Raw Video 0

Media Type 0:
--------------------------
Video: MSA1 1440x900 5fps 164kbps

AM_MEDIA_TYPE: 
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {3141534D-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo {05589F80-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 0
cbFormat: 88

VIDEOINFOHEADER:
rcSource: (0,0)-(1440,900)
rcTarget: (0,0)-(1440,900)
dwBitRate: 164794
dwBitErrorRate: 0
AvgTimePerFrame: 2000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 1440
biHeight: 900
biPlanes: 1
biBitCount: 16
biCompression: MSA1
biSizeImage: 66101
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 a0 05 00 00 84 03 00 00 ........ ...„...
0010: 00 00 00 00 00 00 00 00 a0 05 00 00 84 03 00 00 ........ ...„...
0020: ba 83 02 00 00 00 00 00 80 84 1e 00 00 00 00 00 ºƒ......€„......
0030: 28 00 00 00 a0 05 00 00 84 03 00 00 01 00 10 00 (... ...„.......
0040: 4d 53 41 31 35 02 01 00 00 00 00 00 00 00 00 00 MSA15...........
0050: 00 00 00 00 00 00 00 00 ........



Since that didn't work, I tried installing the Microsoft MPEG-4 V1/2/3 VKI Codec for ASF files and still couldn't get the players to play the video and saw the same errors as above !


As a final attempt, I tried to convert this video to MP4 format using FFMPEG (version from 2020). Even this failed. Here are the logs :


D:\ffmpeg-20200403-52523b6-win64-static\bin>ffmpeg.exe -i input-video.wmv -c:v copy -c:a aac -q:a 100 output.mp4
ffmpeg version git-2020-04-03-52523b6 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9.3.1 (GCC) 20200328
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 42.102 / 56. 42.102
 libavcodec 58. 77.101 / 58. 77.101
 libavformat 58. 42.100 / 58. 42.100
 libavdevice 58. 9.103 / 58. 9.103
 libavfilter 7. 77.101 / 7. 77.101
 libswscale 5. 6.101 / 5. 6.101
 libswresample 3. 6.100 / 3. 6.100
 libpostproc 55. 6.100 / 55. 6.100
[msa1 @ 000002505bb847c0] Image dimensions should be a multiple of 16.
[asf @ 000002505bb4b600] Failed to open codec in avformat_find_stream_info
[msa1 @ 000002505bb847c0] Image dimensions should be a multiple of 16.
Input #0, asf, from 'input-video.wmv':
 Metadata:
 WMFSDKNeeded : 0.0.0.0000
 WMFSDKVersion : 10.00.00.4072
 IsVBR : 0
 Duration: 01:22:49.28, start: 0.000000, bitrate: 96 kb/s
 Stream #0:0(ger): Video: msa1 (MSA1 / 0x3141534D), none, 1440x900, 164 kb/s, 5 tbr, 1k tbn, 1k tbc
[mp4 @ 000002505bb4ce40] Could not find tag for codec msa1 in stream #0, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Last message repeated 1 times

D:\ffmpeg-20200403-52523b6-win64-static\bin>



I wish to know, is there any other way I can convert this video to a more modern format so that I can play it on a modern machine and modern video player ?

What other codecs am I missing here ? (if so, where can I get them ?)

FYI, as mentioned earlier at the top, I'm only able to play the associated audio file...

I'm fairly new to all this stuff, so any help is appreciated.


Thanks in advance ! :)