
Recherche avancée
Médias (91)
-
Corona Radiata
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Lights in the Sky
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Head Down
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Echoplex
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Discipline
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Letting You
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (45)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)
Sur d’autres sites (9113)
-
More problems with FFmpeg not recognizing the directory I'm sending it to
8 novembre 2019, par Requiem_7I am creating a program that takes an audio file, breaks it up into 30-second audio files, and sends those files to Google’s Speech Recognition API to transcribe the audio. I’m using FFmpeg to break up the original audio file and make the 30-second files. It was working for about 20 minutes and I didn’t change anything but now it’s giving me an error saying that no such file or directory exists.
Here is the error it gives me :
C:\Users\hmkur\Desktop\Python\Transcribing_Audio_GoogleAPI_Python>ffmpeg -i source/valve.flac -f segment -segment_time 30 -c copy parts/out%01d.flac
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190807
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-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-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'source/valve.flac':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.29.100
Duration: 00:11:42.54, start: 0.000000, bitrate: 129 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc.
[segment @ 000001f8e84bd100] Opening 'parts/out0.flac' for writing
[segment @ 000001f8e84bd100] Failed to open segment 'parts/out0.flac'
Could not write header for output file #0 (incorrect codec parameters ?): No such file or directory
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Last message repeated 1 timesBoth the folder "source" with "valve.flac" exists as well as the folder "parts" and the files "out0.flac", etc. I was originally trying in the wav file format, switched to flac and it worked for about 20 minutes then stopped working.
-
ffmpeg transcoding.c problems about 'dimensions not set'
26 octobre 2020, par Park Han WoolI am trying to solve this problem in
transcoding.c
example about FFMPEG. but I don't know how to approach it...

I am getting this error :


[libx264 @ 00000000022c7120] dimensions not set
Cannot open video encoder for stream #0
Error occurred: Invalid argument



Here is my code to fix the
transcoding.c
example a little bit

static int open_output_file(const char *filename)
{
 AVStream *out_stream;
 AVStream *in_stream;
 AVCodecContext *dec_ctx, *enc_ctx;
 AVCodec *encoder;
 int ret;
 unsigned int i;

 ofmt_ctx = NULL;

 avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, filename);

 if (!ofmt_ctx) {
 av_log(NULL, AV_LOG_ERROR, "Could not create output context\n");
 return AVERROR_UNKNOWN;
 }

 for (i = 0; i < ifmt_ctx->nb_streams; i++) {
 in_stream = ifmt_ctx->streams[i];
 out_stream = avformat_new_stream(ofmt_ctx, NULL);

 if (!out_stream) {
 av_log(NULL, AV_LOG_ERROR, "Failed allocating output stream\n");
 return AVERROR_UNKNOWN;
 }

 dec_ctx = avcodec_alloc_context3(in_stream->codec->codec);
 enc_ctx = avcodec_alloc_context3(out_stream->codec->codec);

 if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO || dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
 /* in this example, we choose transcoding to same codec */
 encoder = avcodec_find_encoder(dec_ctx->codec_id);
 
 if (!encoder) {
 av_log(NULL, AV_LOG_FATAL, "Necessary encoder not found\n");
 return AVERROR_INVALIDDATA;
 }

 /* In this example, we transcode to same properties (picture size,
 * sample rate etc.). These properties can be changed for output
 * streams easily using filters */
 if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {

 enc_ctx->height = dec_ctx->height;
 enc_ctx->width = dec_ctx->width;
 enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio;

 /* take first format from list of supported formats */
 enc_ctx->pix_fmt = AV_PIX_FMT_YUV420P;

 /* video time_base can be set to whatever is handy and supported by encoder */
 enc_ctx->time_base = dec_ctx->time_base;
 }

 else {
 enc_ctx->sample_rate = dec_ctx->sample_rate;
 enc_ctx->channel_layout = dec_ctx->channel_layout;
 enc_ctx->channels = av_get_channel_layout_nb_channels(enc_ctx->channel_layout);

 /* take first format from list of supported formats */
 enc_ctx->sample_fmt = encoder->sample_fmts[0];
 enc_ctx->time_base.num = 1;
 enc_ctx->time_base.den = enc_ctx->sample_rate;
 }

 /* Third parameter can be used to pass settings to encoder */
 ret = avcodec_open2(enc_ctx, encoder, NULL);
 
 if (ret < 0) {
 cout << "ret<0" << endl;
 av_log(NULL, AV_LOG_ERROR, "Cannot open video encoder for stream #%u\n", i);
 return ret;
 }
 }
 else if (dec_ctx->codec_type == AVMEDIA_TYPE_UNKNOWN) {
 av_log(NULL, AV_LOG_FATAL, "Elementary stream #%d is of unknown type, cannot proceed\n", i);
 return AVERROR_INVALIDDATA;
 }
 else {
 /* if this stream must be remuxed */
 ret = avcodec_copy_context(ofmt_ctx->streams[i]->codec, ifmt_ctx->streams[i]->codec);
 if (ret < 0) {
 av_log(NULL, AV_LOG_ERROR, "Copying stream context failed\n");
 return ret;
 }
 }
 if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
 enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
 }

 av_dump_format(ofmt_ctx, 0, filename, 1);

 if (!(ofmt_ctx->oformat->flags & AVFMT_NOFILE)) {
 ret = avio_open(&ofmt_ctx->pb, filename, AVIO_FLAG_WRITE);
 if (ret < 0) {
 av_log(NULL, AV_LOG_ERROR, "Could not open output file '%s'", filename);
 return ret;
 }
 }

 /* init muxer, write output file header */
 ret = avformat_write_header(ofmt_ctx, NULL);
 if (ret < 0) {
 av_log(NULL, AV_LOG_ERROR, "Error occurred when opening output file\n");
 return ret;
 }
 return 0;
}



Why doesn't
avcodec_open2
work in my code ?

-
AVCodecContex returns zero for width and height in android
17 février 2023, par WhoamiNot sure what was my mistake in the below code. I m trying with ffmpeg 0.11 and SDL2.0 in android.



QUESTION :
Why Width and Height of the CodecContext gives me always zero ?..



int main(int argc, char *argv[])
{

 int flags;
 flags = SDL_INIT_VIDEO | SDL_INIT_TIMER;

 if (SDL_Init (flags)) {
 LOGD ("Could not intialize Video for SDL: %s \n", SDL_GetError());
 }
 else 
 LOGD (" SUCCESS: SDL_Init ");

 // ffmpeg Register all services..
 ffmpeg_register_all (); 


 pFrame = avcodec_alloc_frame ();
 context = avformat_alloc_context();

 err = avformat_open_input (&context, "rtsp:ip:port", NULL, NULL);
 if ( err < 0) {
 __android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "Unable to open rtsp... ");

 return -1;
 }

 for (i = 0; i < context->nb_streams; i++)
 { 
 // Find the Decoder.
 codec = avcodec_find_decoder(context->streams[i]->codec->codec_id);
 if (codec->type == AVMEDIA_TYPE_VIDEO ) {
 __android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "Found Video Streaming.. ");
 videoStreamIndex = i;

 }
 }

 // Play RTSP
 av_read_play(context);

 // Get Codec Context.
 pCodecCtx = context->streams[videoStreamIndex]->codec;
 if ( pCodecCtx == NULL )
 __android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "CodecCtx is NULL>>> ");
 else
 __android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "CodecCtx is <<<ok>>> ");


 //Find the Decoder.
 pCodec = avcodec_find_decoder (pCodecCtx->codec_id);
 avcodec_open2 (pCodecCtx, pCodec, NULL);


 int w = pCodecCtx->width; // Why me getting 0 ? 
 int h = pCodecCtx->height;

 window = SDL_CreateWindow ("Test ffmpeg",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, w, h, SDL_WINDOW_SHOWN|SDL_WINDOW_ALLOW_HIGHDPI);
 // What this HIGHDPI Means ??

 if ( window != NULL ) 
 {
 LOGD (" WINDOW CREATED.. , create Renderer ..");
 renderer = SDL_CreateRenderer (window, -1, 0); 
 }
 else
 {
 LOGD (" Invalid SDL Window "); 
 }
__android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "Width and Height of PCodeccCtx.. %d .. %d " , w, h); 
 return 0;
}
</ok>