
Recherche avancée
Autres articles (35)
-
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 (6517)
-
Duplicate a signal with FFmpeg library [on hold]
22 septembre 2016, par MeugiwaraI’m using the FFmpeg library to develop a program in C/C++. At this time, my aim is to duplicate the signal when I open an audio file. My scheme is the next : read an audio file, transform the stereo signal in mono signal and duplicate this mono signal to get two mono signal exactly the same.
I watched in the Doxygen documentation on the official website, but I don’t find something interesting. Do someone know a good way to do this ?
Here’s what I have so far :
#include
#include
#include
#define __STDC_CONSTANT_MACROS
#ifdef _WIN32
extern "C" /* Windows */
{
#include "libswresample/swresample.h"
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "SDL2/SDL.h"
};
#else
#ifdef __cplusplus
extern "C" /* Linux */
{
#endif /* __cplusplus */
#include <libswresample></libswresample>swresample.h>
#include <libavformat></libavformat>avformat.h>
#include <libavcodec></libavcodec>avcodec.h>
#include <sdl2></sdl2>SDL.H>
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* _WIN32 */
#define MAX_AUDIO_FRAME_SIZE 192000 /* 1 second of 48 kHz 32 bits audio*/
#define OUTPUT_PCM 1 /* Output PCM */
#define USE_SDL 1 /* Use SDL */
/* Les incrémentations */
static Uint32 audio_len;
static Uint8 *audio_chunk;
static Uint8 *audio_pos;
void fill_audio(void *udata, Uint8 *stream, int len)
{
SDL_memset(stream, 0, len); /* SDL 2.0 */
if (audio_len == 0)
return;
len = (len > audio_len ? audio_len : len);
SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
audio_pos = audio_pos + len;
audio_len = audio_len - len;
}
int reading_sound(char *str)
{
SDL_AudioSpec wanted_spec;
AVFormatContext *pFormatCtx;
AVCodecContext *pCodecCtx;
AVSampleFormat out_sample_fmt;
AVPacket *packet;
AVFrame *pFrame;
AVCodec *pCodec;
uint64_t out_channel_layout;
uint8_t *out_buffer;
int64_t in_channel_layout;
struct SwrContext *au_convert_ctx;
int out_sample_rate;
int out_buffer_size;
int out_nb_samples;
int out_channels;
int audioStream;
int got_picture;
int index = 0;
int ret;
int i;
FILE *pFile = NULL;
/*
//char *sound = "WavinFlag.aac";
*/
av_register_all();
avformat_network_init();
pFormatCtx = avformat_alloc_context();
if (avformat_open_input(&pFormatCtx, str, NULL, NULL) != 0) /* Ouverture du fichier */
{
fprintf(stderr, "%s\n", "Couldn't open input stream");
return (-1);
}
if (avformat_find_stream_info(pFormatCtx, NULL) < 0) /* Récupérer les informations */
{
fprintf(stderr, "Couldn't find stream information\n");
return (-1);
}
av_dump_format(pFormatCtx, 0, str, false); /* Envoyer les informations utiles sur la sortie d'erreur */
audioStream = -1;
for (i = 0; i < pFormatCtx->nb_streams; i++) /* Trouver le début du son */
if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
{
audioStream = i;
break;
}
if (audioStream == -1)
{
fprintf(stderr, "%s\n", "Didn't find an audio stream");
return (-1);
}
pCodecCtx = pFormatCtx->streams[audioStream]->codec;
pCodec = avcodec_find_decoder(pCodecCtx->codec_id); /* Trouver le décodeur du fichier (.aac, .mp3, ...) */
if (pCodec == NULL)
{
fprintf(stderr, "%s\n", "Codec not found");
return (-1);
}
if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0) /* Ouvrir le décodeur du fichier */
{
fprintf(stderr, "%s\n", "Couldn't open codec");
return (-1);
}
#if OUTPUT_PCM
pFile = fopen("output.pcm", "wb"); /* Créer et écrire tout ce qui se passe dans ce fichier */
#endif /* OUTPUT_PCM */
packet = (AVPacket *)av_malloc(sizeof(AVPacket)); /* Allouer taille */
av_init_packet(packet);
out_channel_layout = AV_CH_LAYOUT_MONO; /* Canaux de sortie */
out_nb_samples = pCodecCtx->frame_size; /* L'échantillonnage - Le nombre de samples*/
out_sample_fmt = AV_SAMPLE_FMT_S16; /* Format */
out_sample_rate = 44100; /* Fréquence */
out_channels = av_get_channel_layout_nb_channels(out_channel_layout); /* Récupérer le nombre de canaux */
/*
// printf("%d\n", out_channels);
// system("PAUSE");
*/
out_buffer_size = av_samples_get_buffer_size(NULL, out_channels, out_nb_samples, out_sample_fmt, 1); /* Taille du buffer */
out_buffer = (uint8_t *)av_malloc(MAX_AUDIO_FRAME_SIZE * 2); /* Allouer taille */
pFrame = av_frame_alloc(); /* Allouer taille */
#if USE_SDL
if (SDL_Init(SDL_INIT_VIDEO |SDL_INIT_AUDIO | SDL_INIT_TIMER)) /* Initialiser SDL */
{
fprintf(stderr, "%s - %s\n", "Couldn't initialize SDL", SDL_GetError());
return (-1);
}
/*
// Attribution des valeurs avec les variables au-dessus
*/
wanted_spec.freq = out_sample_rate;
wanted_spec.format = AUDIO_S16SYS;
wanted_spec.channels = out_channels;
wanted_spec.silence = 0;
wanted_spec.samples = out_nb_samples;
wanted_spec.callback = fill_audio;
wanted_spec.userdata = pCodecCtx;
if (SDL_OpenAudio(&wanted_spec, NULL) < 0)
{
fprintf(stderr, "%s\n", "Can't open audio");
return (-1);
}
#endif /* USE_SDL */
in_channel_layout = av_get_default_channel_layout(pCodecCtx->channels);
au_convert_ctx = swr_alloc();
au_convert_ctx = swr_alloc_set_opts(au_convert_ctx, out_channel_layout, out_sample_fmt, out_sample_rate,
in_channel_layout, pCodecCtx->sample_fmt, pCodecCtx->sample_rate, 0, NULL);
swr_init(au_convert_ctx);
while (av_read_frame(pFormatCtx, packet) >= 0) /* Lecture du fichier */
{
if (packet->stream_index == audioStream)
{
ret = avcodec_decode_audio4(pCodecCtx, pFrame, &got_picture, packet); /* Décoder les packets */
if (ret < 0)
{
fprintf(stderr, "%s\n", "Error in decoding audio frame");
return (-1);
}
if (got_picture > 0)
{
swr_convert(au_convert_ctx, &out_buffer, MAX_AUDIO_FRAME_SIZE, (const uint8_t **)pFrame->data, pFrame->nb_samples);
#if 1
printf("Index : %5d\t Points : %lld\t Packet size : %d\n", index, packet->pts, packet->size); /* Affichage des informations sur la console */
#endif /* 1 */
#if OUTPUT_PCM
fwrite(out_buffer, 1, out_buffer_size, pFile); /* Faire l'écriture dans le fichier */
#endif /* OUTPUT_PCM */
index = index + 1;
}
#if USE_SDL
while (audio_len > 0)
SDL_Delay(1);
audio_chunk = (Uint8 *)out_buffer;
audio_len = out_buffer_size;
audio_pos = audio_chunk;
SDL_PauseAudio(0);
#endif /* USE_SDL */
}
av_free_packet(packet); /* Libérer les packets */
}
swr_free(&au_convert_ctx); /* Libérer la taille de conversion */
#if USE_SDL
SDL_CloseAudio(); /* Arrêter le son dans SDL */
SDL_Quit(); /* Quitter SDL */
#endif /* USE_SDL */
#if OUTPUT_PCM
fclose(pFile); /* Fermer le fichier d'écriture */
#endif /* OUTPUT_PCM */
av_free(out_buffer);
avcodec_close(pCodecCtx); /* Fermer le décodeur */
avformat_close_input(&pFormatCtx); /* Fermer le fichier lu */
return (0);
}
int main(int argc, char **argv)
{
if (argc != 2)
{
fprintf(stderr, "%s\n", "Usage : ./BASELFI [File]");
system("PAUSE");
return (-1);
}
else
{
reading_sound(argv[1]);
return (0);
}
return (0);
} -
CVAT error during installation of development version
28 novembre 2022, par RamanI'm trying to install development version of CVAT according to official instruction but struggling at the step of requirements.txt applying :


pip install -r cvat/requirements/development.txt



... with following error :


Skipping wheel build for av, due to binaries being disabled for it.
Skipping wheel build for datumaro, due to binaries being disabled for it.
Installing collected packages: wrapt, tf-estimator-nightly, termcolor, tensorboard-plugin-wit, Shapely, rules, rope, rjsmin, rcssmin, pytz, pyasn1, patool, mistune, mccabe, libclang, keras, itypes, flatbuffers, entrypoint2, EasyProcess, dj-pagination, diskcache, av, addict, Werkzeug, urllib3, uritemplate, typing-extensions, tqdm, tornado, toml, threadpoolctl, tensorflow-io-gcs-filesystem, tensorboard-data-server, sqlparse, smmap, six, ruamel.yaml.clib, rsa, redis, PyYAML, pyunpack, pyrsistent, pyparsing, pylogbeat, pyjwt, Pygments, pycparser, pyasn1-modules, protobuf, Pillow, oauthlib, numpy, networkx, natsort, MarkupSafe, Markdown, lxml, lazy-object-proxy, kiwisolver, joblib, jmespath, isort, inflection, idna, google-crc32c, gast, fonttools, dnspython, django-extensions, deprecated, defusedxml, cycler, click, charset-normalizer, certifi, cachetools, attrs, asgiref, absl-py, tensorboardX, snakeviz, scipy, ruamel.yaml, rq, requests, python3-openid, python-ldap, python-dateutil, pdf2image, packaging, orderedmultidict, opt-einsum, opencv-python-headless, opencv-python, keras-preprocessing, jsonschema, jinja2, isodate, h5py, grpcio, googleapis-common-protos, google-resumable-media, google-pasta, google-auth, gitdb, Django, cffi, astunparse, astroid, scikit-learn, requests-oauthlib, pylint, pandas, matplotlib, limits, google-api-core, GitPython, furl, djangorestframework, django-sendfile2, django-rq, django-filter, django-cors-headers, django-auth-ldap, django-appconf, cryptography, croniter, coreschema, botocore, azure-core, s3transfer, rq-scheduler, python-logstash-async, pylint-plugin-utils, pycocotools, open3d, msrest, google-cloud-core, google-auth-oauthlib, drf-spectacular, django-rest-auth, django-compressor, coreapi, tensorboard, pylint-django, google-cloud-storage, django-allauth, datumaro, boto3, azure-storage-blob, tensorflow
 Running setup.py install for av ... error
 error: subprocess-exited-with-error
 
 × Running setup.py install for av did not run successfully.
 │ exit code: 1
 ╰─> [50 lines of output]
 running install
 /Users/dd/cvat/.env/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
 warnings.warn(
 running build
 running build_py
 creating build
 creating build/lib.macosx-12.4-x86_64-cpython-39
 creating build/lib.macosx-12.4-x86_64-cpython-39/av
 copying av/deprecation.py -> build/lib.macosx-12.4-x86_64-cpython-39/av
 copying av/datasets.py -> build/lib.macosx-12.4-x86_64-cpython-39/av
 copying av/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av
 copying av/__main__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/video
 copying av/video/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/video
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/codec
 copying av/codec/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/codec
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/container
 copying av/container/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/container
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/audio
 copying av/audio/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/audio
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/subtitles
 copying av/subtitles/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/subtitles
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/filter
 copying av/filter/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/filter
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/sidedata
 copying av/sidedata/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/sidedata
 creating build/lib.macosx-12.4-x86_64-cpython-39/av/data
 copying av/data/__init__.py -> build/lib.macosx-12.4-x86_64-cpython-39/av/data
 running build_ext
 running config
 PyAV: 8.0.2 (unknown commit)
 Python: 3.9.10 (main, Jun 28 2022, 17:49:16) \n[Clang 13.1.6 (clang-1316.0.21.2.5)]
 platform: macOS-12.4-x86_64-i386-64bit
 extension_extra:
 include_dirs: [b'include']
 libraries: []
 library_dirs: []
 define_macros: []
 runtime_library_dirs: []
 config_macros:
 PYAV_COMMIT_STR="unknown-commit"
 PYAV_VERSION=8.0.2
 PYAV_VERSION_STR="8.0.2"
 Could not find libavformat with pkg-config.
 Could not find libavcodec with pkg-config.
 Could not find libavdevice with pkg-config.
 Could not find libavutil with pkg-config.
 Could not find libavfilter with pkg-config.
 Could not find libswscale with pkg-config.
 Could not find libswresample with pkg-config.
 [end of output]
 
 note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> av



I have already tried suggested fixes, but no luck :
https://github.com/openvinotoolkit/cvat/issues/4406


Environment :


- 

- MacBook Pro (Intel x64)
- macOS Monterey (Version 12.4)
- (pyenv) Python 3.9.10








What other options could be applied to fix it ?


-
FFMPEG PNG sequence into mkv cause "inflate returned error -3" every 600-800 frames [closed]
30 novembre 2023, par sergey9295I am new to ffmpeg. I try to use it for creating videos from png sequences. I have uncompressed pngs. All of them rgb24 format.


But during encoding process I get inflate errors. I compared PNG and video frame by frame. And video have approximately 1 dupe frame every 600-800 frames instead of the ones that should be on that places. I tried another codecs, tried to clear png's EXIF(it made things even worse), made sure that memory was enough. Doesn't matter.


The worst part is that this errors are pretty random. I encode one sequence 3 times and get 3 different sets of error-causing frames.


FFMPEG was downloaded from official site.


PS C:\Users\sergey9295\Desktop\Upscaler\bin> ./ffmpeg -framerate 24000/1001 -i 24o/frame%04d.png -c:v libx264 -qp 0 -r 24000/1001 -pix_fmt yuv420p BC108K.mkv
ffmpeg version N-112872-g67ce690bc6-20231128 Copyright (c) 2000-2023 the FFmpeg developers
 built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21)
 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20231128
 libavutil 58. 32.100 / 58. 32.100
 libavcodec 60. 35.100 / 60. 35.100
 libavformat 60. 18.100 / 60. 18.100
 libavdevice 60. 4.100 / 60. 4.100
 libavfilter 9. 13.100 / 9. 13.100
 libswscale 7. 6.100 / 7. 6.100
 libswresample 4. 13.100 / 4. 13.100
 libpostproc 57. 4.100 / 57. 4.100
Input #0, image2, from '24o/frame%04d.png':
 Duration: 00:01:32.09, start: 0.000000, bitrate: N/A
 Stream #0:0: Video: png, rgb24(pc, gbr/bt709/iec61966-2-1), 7680x4320, 23.98 fps, 23.98 tbr, 23.98 tbn
Stream mapping:
 Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 00000231363c6280] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 00000231363c6280] profile High 4:4:4 Predictive, level 6.0, 4:2:0, 8-bit
[libx264 @ 00000231363c6280] 64 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=0 mixed_ref=1 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=0 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=0
Output #0, matroska, to 'BC108K.mkv':
 Metadata:
 encoder : Lavf60.18.100
 Stream #0:0: Video: h264 (H264 / 0x34363248), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 7680x4320, q=2-31, 23.98 fps, 1k tbn
 Metadata:
 encoder : Lavc60.35.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[png @ 00000231363c8880] inflate returned error -301:02.72 bitrate=698356.0kbits/s speed=0.171x
[vist#0:0/png @ 00000231363c16c0] Error submitting packet to decoder: Generic error in an external library
[png @ 00000231363c8880] inflate returned error -301:15.24 bitrate=679969.1kbits/s dup=1 drop=0 speed=0.172x
[vist#0:0/png @ 00000231363c16c0] Error submitting packet to decoder: Generic error in an external library3x
[png @ 00000231363f32c0] inflate returned error -301:16.65 bitrate=694583.2kbits/s dup=2 drop=0 speed=0.171x
[vist#0:0/png @ 00000231363c16c0] Error submitting packet to decoder: Generic error in an external library1x
[png @ 000002313646a100] inflate returned error -301:20.78 bitrate=742902.6kbits/s dup=3 drop=0 speed=0.167x
[vist#0:0/png @ 00000231363c16c0] Error submitting packet to decoder: Generic error in an external library6x
[png @ 000002313646ea00] inflate returned error -301:26.92 bitrate=839679.5kbits/s dup=4 drop=0 speed=0.159x
[vist#0:0/png @ 00000231363c16c0] Error submitting packet to decoder: Generic error in an external library8x
[png @ 00000231363cc740] inflate returned error -301:29.38 bitrate=874703.4kbits/s dup=5 drop=0 speed=0.156x
[vist#0:0/png @ 00000231363c16c0] Error submitting packet to decoder: Generic error in an external library6x
[out#0/matroska @ 00000231363a7200] video:9827779kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000442%
frame= 2208 fps=3.8 q=-1.0 Lsize= 9827822kB time=00:01:32.05 bitrate=874625.3kbits/s dup=6 drop=0 speed=0.158x



IMO the problem is zlib from libpng. But I don't have skills to recompile it with libspng that doesn't require zlib. Maybe there is a ffmpeg version without this error ?