
Recherche avancée
Médias (2)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (73)
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...) -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (13972)
-
how can i use the sox library to process the audio frame decoded by ffmpeg ?
14 juin 2023, par bishop使用sox音频处理库处理经过ffmpeg解码得到的音频帧,


//使用sox处理音频
 int sox_count = 9;
 if (StreamType::AUDIO == stream_type_ ) {
 sox_init();

 sox_signalinfo_t* in_signal = new sox_signalinfo_t();
 in_signal->rate = frame->sample_rate;
 in_signal->channels = frame->ch_layout.nb_channels;
 in_signal->length = frame->nb_samples * in_signal->channels;
 in_signal->precision = av_get_bytes_per_sample(static_cast<avsampleformat>(frame->format)) * 8;

 //= new sox_format_t();
 sox_encodinginfo_t* in_encoding = new sox_encodinginfo_t ();
 in_encoding->encoding = SOX_ENCODING_SIGN2 ;
 sox_format_t* tempFormat = sox_open_mem_read(frame->data[0],
 frame->linesize[0],
 in_signal, in_encoding, "raw");

 //sox_write(tempFormat, reinterpret_cast<const>(frame->data[0]), frame->nb_samples);

 sox_signalinfo_t* out_signal = in_signal; // 输出音频的参数与输入音频相同
 //out_signal->rate = new_sample_rate; // 新的采样率,根据需要进行修改

 sox_encodinginfo_t* out_encoding = in_encoding; // 输出音频的编码格式与输入音频相同

 sox_format_t* outputFormat = sox_open_mem_write(frame->data[0],
 frame->linesize[0],
 out_signal, out_encoding, "raw", nullptr);

 // 3. 使用SoX处理临时文件中的音频数据
 sox_effects_chain_t* chain = sox_create_effects_chain(&tempFormat->encoding, &outputFormat->encoding);
 sox_effect_t* effect;
 char* args[10];

 effect = sox_create_effect(sox_find_effect("input"));
 args[0] = (char*)tempFormat; // 变调参数,可以根据需求进行修改
 assert(sox_effect_options(effect, 1, args) ==SOX_SUCCESS);
 assert(sox_add_effect(chain, effect, &tempFormat->signal, &tempFormat->signal) == SOX_SUCCESS);
 free(effect);


 effect = sox_create_effect(sox_find_effect("vol"));
 args[0] = "200dB", assert(sox_effect_options(effect, 1, args) == SOX_SUCCESS);
 /* Add the effect to the end of the effects processing chain: */
 assert(sox_add_effect(chain, effect, &tempFormat->signal, &tempFormat->signal) == SOX_SUCCESS);
 free(effect);

 /*
 effect = sox_create_effect(sox_find_effect("pitch"));
 args[0] = {"50.0"}; // 变调参数,可以根据需求进行修改
 assert(sox_effect_options(effect, 1, args) == SOX_SUCCESS);
 assert(sox_add_effect(chain, effect, &tempFormat->signal, &outputFormat->signal) == SOX_SUCCESS);
 free(effect);
 */

 effect = sox_create_effect(sox_find_effect("output"));
 args[0] = (char*)outputFormat; // 变调参数,可以根据需求进行修改
 assert(sox_effect_options(effect, 1, args) == SOX_SUCCESS);
 if(sox_add_effect(chain, effect, &tempFormat->signal, &outputFormat->signal) == SOX_SUCCESS) {
 std::cout<<"true"</assert(sox_add_effect(chain, effect, &tempFormat->signal, &outputFormat->signal) == SOX_SUCCESS);
 free(effect);

 // 4. 处理音频数据
 sox_flow_effects(chain, nullptr, nullptr);

 fflush((FILE*)outputFormat->fp); 
 memcpy(frame->data[1], frame->data[0], frame->linesize[0]);

 // 释放资源
 sox_delete_effects_chain(chain);
 sox_close(tempFormat);
 sox_close(outputFormat);
 sox_quit();

 }
</const></avsampleformat>


error :"input : : this handler does not support this data size"


when execute in the line of "sox_flow_effects(chain, nullptr, nullptr) ;"


how can i fixed this problem ?


i have changed the val of "sox_format_t* tempFormat = sox_open_mem_read(frame->data[0],
frame->linesize[0],
in_signal, in_encoding, "raw") ;" buffer_size,but also not right.


-
General outline for how to code a YouTube to MP4 converter that allows the user to trim the video according to time stamps they put in ? [closed]
16 mai 2023, par Vdog22I just need a general outline of how to do this.


I haven't started yet, but I'm not so experienced so I'm not sure how to go about this.


N/A



-
Revision 51a0e9825b : General cleanup in vp9_encodeframe.c. Change-Id : I446fca8aa11a4d4fc2b23d4b32348
7 mars 2014, par Dmitry KovalevChanged Paths :
Modify /vp9/encoder/vp9_encodeframe.c
General cleanup in vp9_encodeframe.c.Change-Id : I446fca8aa11a4d4fc2b23d4b32348b74d74d0202