
Recherche avancée
Autres articles (90)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
Sur d’autres sites (11198)
-
Why does mplayer not play my stream ?
17 juillet 2016, par SirWindfieldI wanted to use mplayer (a command line tool) to play a SoundCloud url that I fetched with there official API. The url looks like this
https://cf-media.sndcdn.com/qop35iYKlHhs.128.mp3?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLW1lZGlhLnNuZGNkbi5jb20vcW9wMzVpWUtsSGhzLjEyOC5tcDMiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0Njg3NTM4NjB9fX1dfQ__&Signature=OZ4IawmjdU6hEN8KB8e~t3QTy4lBFVBbIDg-a6tuPkb65e0mPskkCFFASkTWbyy5lsaT9IrURan6y70sZhLXPbng1IfkTsGdX1dO938NwVYnKs-BS7IL4TiVFxTBXoKJgmCmUD0qmmGmYqm3YdGZQrP~Sj~mw9~fmtwdHQu0rhl3O-dKsgk497JAR6pMorQs7BSs0XIosV1Mmv2DMD6iifquCWV9Ezq4ekneQ1gfSjVmzjjnKvsxjPpgmU~5DTdewwzlNClVxdzHSQONWM7c0YMGlBcVz97NviaeZOQSCAW8QZS59WULXJBJ9OmEPctWtpe3O0mo-GYjwEkbVGYl9A__&Key-Pair-Id=APKAJAGZ7VMH2PFPW6UQ
I use the command "mplayer ’url’" to play it but I always get the output :
libavformat version 57.25.100 (internal)
https protocol not found, recompile FFmpeg with openssl, gnutls,
or securetransport enabled.Looking which protocols have been installed tells me that I have https input and output support (ffmpeg -protocols) :
ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.3.0 (clang-703.0.31)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libfaac --enable-ffplay --enable-libspeex --enable-openssl --enable-libopus --disable-lzma --enable-nonfree --enable-vda
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 47.100 / 6. 47.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
Supported file protocols:
Input:
async
cache
concat
crypto
data
file
ftp
gopher
hls
http
httpproxy
https
mmsh
mmst
pipe
rtp
srtp
subfile
tcp
tls
udp
udplite
unix
rtmp
rtmpe
rtmps
rtmpt
rtmpte
Output:
crypto
file
ftp
gopher
http
httpproxy
https
icecast
md5
pipe
rtp
srtp
tcp
tls
udp
udplite
unix
rtmp
rtmpe
rtmps
rtmpt
rtmpte -
convert WAV to TETRA format
14 juin 2020, par Ashish AroraI am trying to convert a wav file into TETRA encoded file (https://en.wikipedia.org/wiki/Terrestrial_Trunked_Radio). Tetra is used by fire-fighters, it provides a radio-like voice.



I am trying to use the official tetra codec codes available at (https://www.etsi.org/deliver/etsi_en/300300_300399/30039502/01.03.01_60/) and we can easily compile it using the scripts available at https://github.com/sq5bpf/install-tetra-codec.



However, I am not able to figure out how to convert a wav file into tetra codec files using these files. I tried going through the documentation of the compiled files (ccoder, cdecoder, scoder, sdecoder).



I tried the following command -





tetra/bin/scoder input.wav serial_file synth_file





here serial_file and synth_file are the output files and have following documentation in the scoder.c file :



INPUT : - Description : speech file to be analyzed
 - Format : binary file 16 bit-samples
 240 samples per frame

serial_file : - Description : serial stream output file 
 - Format : binary file 16 bit-samples
 each 16 bit-sample represents one encoded bit
 138 (= 1 + 137) bits per frame

synth_file : - Description : local synthesis output file 
 - Format : binary file 16 bit-samples




For an input file of size 13M, I obtained serial_file and synth_file of size 8.0M and 16M. However, I thought since the wav file is getting converted into a walkie-talkie type signal the output file size will be alot smaller.



I want to clarify if :



- 

- I used the correct code to convert an input wav file into a tetra format output file.
- can you please help me understand, what is serial_file and synth_file.







Thanks,
Ashish


-
FFmpeg realtime volume changing with C API
9 janvier 2019, par Tank2006My environment is FFmpeg 4.1(Prebuild package from an official site) on Windows 10/Visual Studio 2017.
I want to change an audio volume as realtime according to a volume button operation from media player apps.
Think simply, it will update if AVFilter parameters changes, but it seems doesn’t work.
const char src[] = "C:\\sample.mp3";
AVFilterGraph *graph = NULL;
AVFilterContext *ctx_src, *ctx_sink;
AVFilter *ctx_vol;
int main()
{
int res;
AVPacket *packet = av_packet_alloc();
AVFrame *frame = av_frame_alloc();
AVFrame *fframe = av_frame_alloc();
AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_MP3);
AVCodecParser *parser = av_parser_init(codec->id);
AVCodecContext *cc = avcodec_alloc_context3(codec);
avcodec_open2(cc, codec, NULL);
FILE *fp; uint8_t buffer[1024]; int filterinit = 0;
fopen_s(&fp, src, "rb");
while (feof(fp) == 0) {
int read = fread(buffer, 1, 1024, fp);
res = av_parser_parse2(parser, cc, &packet->data, &packet->size,
buffer, read, AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0);
if (packet->size) {
res = avcodec_send_packet(cc, packet);
while (res >= 0) {
res = avcodec_receive_frame(cc, frame);
if (res == AVERROR(EAGAIN) || res == AVERROR_EOF) {
break;
} else if (res < 0) {
fprintf(stderr, "Error during decoding\n");
exit(1);
}
if (filterinit == 0) {
// Create a volume filter, links and graph from AVCodecContext's parameter
if(init_filters(cc)) filterinit = 1;
}
if (filterinit == 1) {
res = av_buffersrc_add_frame(ctx_src, frame);
if(av_buffersink_get_frame(ctx_sink, frame) >= 0) {
// Change the volume realtime
av_opt_set(ctx_vol, "volume", AV_STRINGIFY(1.2), AV_OPT_SEARCH_CHILDREN);
int datasize = av_get_bytes_per_sample(cc->sample_fmt);
for (int i = 0; i < frame->nb_samples; i++) {
for (int ch = 0; ch < cc->channels; ch++) {
//fwrite(frame->data[ch] + data_size * i, 1, data_size, outfile);
}
}
}
}
}
}
}
fclose(fp);
avcodec_free_context(&cc);
av_parser_close(parser);
av_frame_free(&frame);
av_frame_free(&fframe);
av_packet_free(&packet);
avfilter_graph_free(&graph);
return 0;
}Can I change the filter value in realtime with FFmpeg’s C API or I need to create a new filter link each time when it requires to update ?