Recherche avancée

Médias (91)

Autres articles (43)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-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

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

Sur d’autres sites (4766)

  • Evolution #4170 : Visibilité icônes des auteurs

    24 août 2018, par erational 鬼

    Voici un 1er essai :

    • ligne 1 : l’existant les auteurs 32
    • ligne 2 : la proposition pour des couleurs plus lisibles un peu à la mode "flat design"
  • avfilter/vf_scale : set correct AVFrame SAR if reset_sar=1

    16 juin, par Niklas Haas
    avfilter/vf_scale : set correct AVFrame SAR if reset_sar=1
    

    This otherwise generates an inconsistency between the frame state and the
    link state, since the link state is set to 1:1 explicitly when `reset_sar`
    is enabled, but this line of code unconditionally overwrote the output
    frame SAR with the value that would be computed in the absence of `reset_sar`.

    cf. vf_scale_cuda, which does this correctly

    • [DH] libavfilter/vf_scale.c
  • How to properly pass an asset FileDescriptor to FFmpeg using JNI in Android

    6 janvier 2021, par William Seemann

    I'm trying to retrieve metadata in Android using FFmpeg, JNI and a Java FileDescriptor and it isn't' working. I know FFmpeg supports the pipe protocol so I'm trying to emmulate : "cat test.mp3 | ffmpeg i pipe:0" programmatically. I use the following code to get a FileDescriptor from an asset bundled with the Android application :

    



    FileDescriptor fd = getContext().getAssets().openFd("test.mp3").getFileDescriptor();
setDataSource(fd, 0, 0x7ffffffffffffffL); // native function, shown below


    



    Then, in my native (In C++) code I get the FileDescriptor by calling :

    



    static void wseemann_media_FFmpegMediaMetadataRetriever_setDataSource(JNIEnv *env, jobject thiz, jobject fileDescriptor, jlong offset, jlong length)
{
    //...

    int fd = jniGetFDFromFileDescriptor(env, fileDescriptor); // function contents show below

    //...
}

// function contents
static int jniGetFDFromFileDescriptor(JNIEnv * env, jobject fileDescriptor) {
    jint fd = -1;
    jclass fdClass = env->FindClass("java/io/FileDescriptor");

    if (fdClass != NULL) {
        jfieldID fdClassDescriptorFieldID = env->GetFieldID(fdClass, "descriptor", "I");
        if (fdClassDescriptorFieldID != NULL && fileDescriptor != NULL) {
            fd = env->GetIntField(fileDescriptor, fdClassDescriptorFieldID);
        }
    }

    return fd;
}


    



    I then pass the file descriptor pipe # (In C) to FFmpeg :

    



    char path[256] = "";&#xA;&#xA;FILE *file = fdopen(fd, "rb");&#xA;&#xA;if (file &amp;&amp; (fseek(file, offset, SEEK_SET) == 0)) {&#xA;    char str[20];&#xA;    sprintf(str, "pipe:%d", fd);&#xA;    strcat(path, str);&#xA;}&#xA;&#xA;State *state = av_mallocz(sizeof(State));&#xA;state->pFormatCtx = NULL;&#xA;&#xA;if (avformat_open_input(&amp;state->pFormatCtx, path, NULL, &amp;options) != 0) { // Note: path is in the format "pipe:<the fd="fd">"&#xA;    printf("Metadata could not be retrieved\n");&#xA;    *ps = NULL;&#xA;    return FAILURE;&#xA;}&#xA;&#xA;if (avformat_find_stream_info(state->pFormatCtx, NULL) &lt; 0) {&#xA;    printf("Metadata could not be retrieved\n");&#xA;    avformat_close_input(&amp;state->pFormatCtx);&#xA;    *ps = NULL;&#xA;    return FAILURE;&#xA;}&#xA;&#xA;// Find the first audio and video stream&#xA;for (i = 0; i &lt; state->pFormatCtx->nb_streams; i&#x2B;&#x2B;) {&#xA;    if (state->pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO &amp;&amp; video_index &lt; 0) {&#xA;        video_index = i;&#xA;    }&#xA;&#xA;    if (state->pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO &amp;&amp; audio_index &lt; 0) {&#xA;        audio_index = i;&#xA;    }&#xA;&#xA;    set_codec(state->pFormatCtx, i);&#xA;}&#xA;&#xA;if (audio_index >= 0) {&#xA;    stream_component_open(state, audio_index);&#xA;}&#xA;&#xA;if (video_index >= 0) {&#xA;    stream_component_open(state, video_index);&#xA;}&#xA;&#xA;printf("Found metadata\n");&#xA;AVDictionaryEntry *tag = NULL;&#xA;while ((tag = av_dict_get(state->pFormatCtx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) {&#xA;    printf("Key %s: \n", tag->key);&#xA;    printf("Value %s: \n", tag->value);&#xA;}&#xA;&#xA;*ps = state;&#xA;return SUCCESS;&#xA;</the>

    &#xA;&#xA;

    My issue is avformat_open_input doesn't fail but it also doesn't let me retrieve any metadata or frames, The same code works if I use a regular file URI (e.g file ://sdcard/test.mp3) as the path. What am I doing wrong ? Thanks in advance.

    &#xA;&#xA;

    Note : if you would like to look at all of the code I'm trying to solve the issue in order to provide this functionality for my library : FFmpegMediaMetadataRetriever.

    &#xA;