Recherche avancée

Médias (91)

Autres articles (85)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • MediaSPIP Core : La Configuration

    9 novembre 2010, par

    MediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
    Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque 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 (...)

Sur d’autres sites (9014)

  • FFMPEG C Library : Encoding h264 stream into Matroska .mkv container creates corrupt files

    16 mars 2024, par Marvin Killing

    I want to use the FFMPEG C Library to create a Matroska Video .mkv file with only an h264 stream, but the resulting .mkv file comes out corrupt.

    


    The file cannot be played back with Windows Media Player, ffplay, or VLC, and when I try to ffprobe the resulting file, these are the error messages :

    


    [h264 @ 0000015060d8f5c0] No start code is found.
    Last message repeated 1 times
[h264 @ 0000015060d8f5c0] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0000015060d8f5c0] decode_slice_header error
[h264 @ 0000015060d8f5c0] no frame!
[h264 @ 0000015060d8f5c0] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0000015060d8f5c0] decode_slice_header error
[h264 @ 0000015060d8f5c0] no frame!
[h264 @ 0000015060d8f5c0] non-existing PPS 0 referenced
    Last message repeated 1 times
# [...]
# this continues for a long time


    


    I have followed the other troubleshooting steps for encoding h264 into Matroska, but none of them seemed to have done the trick for me :

    


    


    This is my C code :

    


    #include &#xA;#include <libavutil></libavutil>opt.h>&#xA;#include <libavutil></libavutil>imgutils.h>&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavformat></libavformat>avformat.h>&#xA;&#xA;int main(void) {&#xA;    char *out_file_path = "./video.mkv";&#xA;    AVFormatContext *format_context;&#xA;    AVStream *video_stream;&#xA;    AVCodecContext *codec_context;&#xA;&#xA;    avformat_alloc_output_context2(&amp;format_context, NULL, NULL, out_file_path);&#xA;&#xA;    const AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264);&#xA;    video_stream = avformat_new_stream(format_context, NULL);&#xA;&#xA;    codec_context = avcodec_alloc_context3(codec);&#xA;    av_opt_set(codec_context->priv_data, "preset", "superfast", 0);&#xA;    av_opt_set(codec_context->priv_data, "crf", "22", 0);&#xA;&#xA;    codec_context->width = 1920;&#xA;    codec_context->height = 1080;&#xA;    codec_context->time_base = av_make_q(1, 30);&#xA;    codec_context->pix_fmt = AV_PIX_FMT_YUV420P;&#xA;&#xA;    if (strncmp("./video.mkv", out_file_path, 11) == 0) {&#xA;      printf("Writing .mkv...\n");&#xA;      codec_context->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;&#xA;      codec_context->extradata = (uint8_t*)av_mallocz(1024 * 1024);&#xA;      codec_context->extradata_size = 1024 * 1024;&#xA;    } else {&#xA;      printf("Writing .mp4...\n");&#xA;    }&#xA;&#xA;    // XXX avcodec_parameters_from_context is potentially superfluous (?)&#xA;    int ret = avcodec_parameters_from_context(video_stream->codecpar, codec_context);&#xA;&#xA;    ret = avcodec_open2(codec_context, codec, NULL);&#xA;&#xA;    avio_open(&amp;format_context->pb, out_file_path, AVIO_FLAG_WRITE);&#xA;&#xA;    ret = avformat_write_header(format_context, NULL);&#xA;&#xA;    // create a black input frame&#xA;    AVFrame *input_frame = av_frame_alloc();&#xA;    input_frame->width = 1920;&#xA;    input_frame->height = 1080;&#xA;    input_frame->format = AV_PIX_FMT_YUV420P;&#xA;    ret = av_image_alloc(input_frame->data, input_frame->linesize, input_frame->width, input_frame->height, input_frame->format, 32);&#xA;    ptrdiff_t linesize[4] = { input_frame->linesize[0], input_frame->linesize[1], input_frame->linesize[2], input_frame->linesize[3] };&#xA;    ret = av_image_fill_black(input_frame->data, linesize, input_frame->format, 0, 1920, 1080);&#xA;&#xA;    // write 2 seconds of video, all black&#xA;    for (size_t current_pts = 0; current_pts &lt; 60; current_pts&#x2B;&#x2B;) {&#xA;      input_frame->pts = av_rescale_q(current_pts, av_make_q(1, 30), codec_context->time_base);;&#xA;&#xA;      ret = avcodec_send_frame(codec_context, input_frame);&#xA;&#xA;      AVPacket* packet = av_packet_alloc();&#xA;&#xA;      while (1) {&#xA;          ret = avcodec_receive_packet(codec_context, packet);&#xA;          if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {&#xA;              break;&#xA;          } else if (ret &lt; 0) {&#xA;              printf("avcodec_receive_packet failed");&#xA;          } else {&#xA;              av_packet_rescale_ts(packet, codec_context->time_base, video_stream->time_base);&#xA;              ret = av_interleaved_write_frame(format_context, packet);&#xA;          }&#xA;      }&#xA;&#xA;      av_packet_free(&amp;packet);&#xA;    }&#xA;&#xA;    av_frame_free(&amp;input_frame);&#xA;&#xA;    // flush encoder&#xA;    avcodec_send_frame(codec_context, NULL);&#xA;    AVPacket *flush_packet = av_packet_alloc();&#xA;    while (avcodec_receive_packet(codec_context, flush_packet) != AVERROR_EOF) {&#xA;        //int ret = av_interleaved_write_frame(format_context_, packet);&#xA;        av_packet_rescale_ts(flush_packet, codec_context->time_base, video_stream->time_base);&#xA;        ret = av_write_frame(format_context, flush_packet);&#xA;    }&#xA;    av_packet_free(&amp;flush_packet);&#xA;&#xA;    ret = av_write_trailer(format_context);&#xA;    ret = avio_close(format_context->pb);&#xA;&#xA;    return 0;&#xA;}&#xA;

    &#xA;

    The error handling is stripped out, but it does not raise any errors.

    &#xA;

    This code works when I write into an mp4 file, but creates a corrupt file when writing into .mkv. You can change the output container format to mp4 by setting&#xA;char *out_file_path = "./video.mp4";

    &#xA;

    You can compile this by running

    &#xA;

    clang -I$(FFMPEG_DIR)/include -L$(FFMPEG_DIR)/lib -lavformat -lavcodec -lavutil main.c -o makemkv&#xA;

    &#xA;

    The output I’m getting while the above code is running :

    &#xA;

    Writing .mkv...&#xA;[libx264 @ 0x139804c40] using cpu capabilities: ARMv8 NEON&#xA;[libx264 @ 0x139804c40] profile High, level 4.0, 4:2:0, 8-bit&#xA;[libx264 @ 0x139804c40] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=15 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=22.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 pb_ratio=1.30 aq=1:1.00&#xA;

    &#xA;

    When I use the ffmpeg CLI, I can create a working .mkv from my working .mp4 like this :

    &#xA;

    ffmpeg -i video.mp4 -c:v copy created-with-ffmpeg-cli.mkv&#xA;

    &#xA;

    I have uploaded the resulting video files here : https://drive.google.com/drive/folders/1FS-0fBAwKBbO-tyxC0VrFqcCyyqd0BR_?usp=sharing

    &#xA;

  • Flutter ffmpeg_kit_flutter_new can't build Android app in any version

    3 juillet, par user31929

    I can't build my project on Android ( on Ios it works and the project itself without ffmpeg_kit_flutter_new builds without problems )&#xA;This is the error i obtain :

    &#xA;

    /GeneratedPluginRegistrant.java:51: error: cannot find symbol&#xA;      com.antonkarpenko.ffmpegkit.MainActivity.registerWith(shimPluginRegistry.registrarFor("com.antonkarpenko.ffmpegkit.MainActivity"));&#xA;                                 ^&#xA;  symbol:   class MainActivity&#xA;  location: package com.antonkarpenko.ffmpegkit&#xA;

    &#xA;

    This is my flutter doctor :

    &#xA;

    [✓] Flutter (Channel stable, 3.19.4, on macOS 15.4.1 24E263 darwin-x64, locale it-IT)&#xA;    • Flutter version 3.19.4 on channel stable at ….&#xA;    • Upstream repository https://github.com/flutter/flutter.git&#xA;    • Framework revision 68bfaea224 (1 year, 2 months ago), 2024-03-20 15:36:31 -0700&#xA;    • Engine revision a5c24f538d&#xA;    • Dart version 3.3.2&#xA;    • DevTools version 2.31.1&#xA;&#xA;[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)&#xA;    • Android SDK at …..&#xA;    • Platform android-35, build-tools 34.0.0&#xA;    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java&#xA;    • Java version OpenJDK Runtime Environment (build 17.0.7&#x2B;0-17.0.7b1000.6-10550314)&#xA;    • All Android licenses accepted.&#xA;&#xA;[✓] Xcode - develop for iOS and macOS (Xcode 16.3)&#xA;    • Xcode at /Applications/Xcode.app/Contents/Developer&#xA;    • Build 16E140&#xA;    • CocoaPods version 1.16.2&#xA;&#xA;[✓] Chrome - develop for the web&#xA;    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome&#xA;&#xA;[✓] Android Studio (version 2023.1)&#xA;    • Android Studio at /Applications/Android Studio.app/Contents&#xA;    • Flutter plugin can be installed from:&#xA;      &#128296; https://plugins.jetbrains.com/plugin/9212-flutter&#xA;    • Dart plugin can be installed from:&#xA;      &#128296; https://plugins.jetbrains.com/plugin/6351-dart&#xA;    • Java version OpenJDK Runtime Environment (build 17.0.7&#x2B;0-17.0.7b1000.6-10550314)&#xA;&#xA;[✓] VS Code (version 1.99.3)&#xA;    • VS Code at /Applications/Visual Studio Code.app/Contents&#xA;    • Flutter extension version 3.110.0&#xA;&#xA;[✓] Connected device (5 available)&#xA;    • SM A135F (mobile)              • RF8T40TMS6Z               • android-arm    • Android 12 (API 31)&#xA;    • cri SE 128 (mobile)      • 00008030-001268303E38402E • ios            • iOS 18.4.1 22E252&#xA;    • iPhone di WacMini (mobile) • 00008030-00121D543CE8802E • ios            • iOS 18.4.1 22E252&#xA;    • macOS (desktop)                • macos                     • darwin-x64     • macOS 15.4.1 24E263 darwin-x64&#xA;    • Chrome (web)                   • chrome                    • web-javascript • Google Chrome 136.0.7103.93&#xA;&#xA;[✓] Network resources&#xA;    • All expected network resources are available.&#xA;

    &#xA;

    My android/app/build.gradle

    &#xA;

    def localProperties = new Properties()&#xA;def localPropertiesFile = rootProject.file(&#x27;local.properties&#x27;)&#xA;if (localPropertiesFile.exists()) {&#xA;    localPropertiesFile.withReader(&#x27;UTF-8&#x27;) { reader ->&#xA;        localProperties.load(reader)&#xA;    }&#xA;}&#xA;&#xA;def keystoreProperties = new Properties()&#xA;def keystorePropertiesFile = rootProject.file(&#x27;key.properties&#x27;)&#xA;if (keystorePropertiesFile.exists()) {&#xA;    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))&#xA;}&#xA;&#xA;def flutterRoot = localProperties.getProperty(&#x27;flutter.sdk&#x27;)&#xA;if (flutterRoot == null) {&#xA;    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")&#xA;}&#xA;&#xA;def flutterVersionCode = localProperties.getProperty(&#x27;flutter.versionCode&#x27;)&#xA;if (flutterVersionCode == null) {&#xA;    flutterVersionCode = &#x27;1&#x27;&#xA;}&#xA;&#xA;def flutterVersionName = localProperties.getProperty(&#x27;flutter.versionName&#x27;)&#xA;if (flutterVersionName == null) {&#xA;    flutterVersionName = &#x27;1.0&#x27;&#xA;}&#xA;&#xA;apply plugin: &#x27;com.android.application&#x27;&#xA;apply plugin: &#x27;kotlin-android&#x27;&#xA;apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"&#xA;apply plugin: &#x27;com.google.gms.google-services&#x27;&#xA;apply plugin: &#x27;com.google.firebase.crashlytics&#x27;&#xA;apply plugin: &#x27;org.jetbrains.kotlin.android&#x27;&#xA;&#xA;&#xA;android {&#xA;&#xA;    compileSdkVersion 35&#xA;&#xA;    namespace = "com.app.app"&#xA;    sourceSets {&#xA;        main.java.srcDirs &#x2B;= &#x27;src/main/kotlin&#x27;&#xA;    }&#xA;&#xA;    defaultConfig {&#xA;        applicationId "com.appid.appid"&#xA;        minSdkVersion 24&#xA;        targetSdkVersion 35&#xA;        versionCode flutterVersionCode.toInteger()&#xA;        versionName flutterVersionName&#xA;       &#xA;        // insert this line of code in order to manage correct build abi configuration only on supported devices not supported tablet device emulator&#xA;       /* ndk {&#xA;            abiFilters &#x27;armeabi-v7a&#x27;, &#x27;arm64-v8a&#x27;, &#x27;x86_64&#x27;&#xA;        }*/&#xA;    }&#xA;&#xA;    signingConfigs {&#xA;        release {&#xA;            keyAlias keystoreProperties[&#x27;keyAlias&#x27;]&#xA;            keyPassword keystoreProperties[&#x27;keyPassword&#x27;]&#xA;            storeFile keystoreProperties[&#x27;storeFile&#x27;] ? file(keystoreProperties[&#x27;storeFile&#x27;]) : null&#xA;            storePassword keystoreProperties[&#x27;storePassword&#x27;]&#xA;        }&#xA;    }&#xA;&#xA;    buildTypes {&#xA;        debug {&#xA;            debuggable true&#xA;        }&#xA;&#xA;        release {&#xA;            signingConfig signingConfigs.release&#xA;            debuggable false&#xA;            shrinkResources true&#xA;            minifyEnabled true&#xA;            proguardFiles getDefaultProguardFile(&#x27;proguard-android.txt&#x27;), &#x27;proguard-rules.pro&#x27;&#xA;        }&#xA;    }&#xA;&#xA;}&#xA;&#xA;flutter {&#xA;    source &#x27;../..&#x27;&#xA;}&#xA;&#xA;dependencies {&#xA;    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.24"&#xA;}&#xA;

    &#xA;

    My android/build.gradle

    &#xA;

    buildscript {&#xA;    ext.kotlin_version = &#x27;1.9.24&#x27;&#xA;    repositories {&#xA;        google()&#xA;        mavenCentral()&#xA;        jcenter()&#xA;    }&#xA;&#xA;    dependencies {&#xA;        classpath &#x27;com.android.tools.build:gradle:8.4.0&#x27;&#xA;        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"&#xA;        classpath &#x27;com.google.gms:google-services:4.3.14&#x27;&#xA;        classpath &#x27;com.google.firebase:firebase-crashlytics-gradle:2.7.1&#x27;&#xA;    }&#xA;}&#xA;&#xA;allprojects {&#xA;    repositories {&#xA;        google()&#xA;        mavenCentral()&#xA;        jcenter()&#xA;    }&#xA;&#xA;    &#xA;    subprojects {&#xA;        tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {&#xA;            kotlinOptions.jvmTarget = "1.8"&#xA;        }&#xA;        afterEvaluate { project ->&#xA;            if (project.hasProperty(&#x27;android&#x27;)) {&#xA;                project.android {&#xA;                    if (namespace == null) {&#xA;                        namespace project.group&#xA;                    }&#xA;                }&#xA;            }&#xA;        }&#xA;    }&#xA;    &#xA;}&#xA;&#xA;&#xA;ext {&#xA;    flutterFFmpegPackage = "min-gpl-lts"&#xA;}&#xA;&#xA;&#xA;rootProject.buildDir = &#x27;../build&#x27;&#xA;subprojects {&#xA;    project.buildDir = "${rootProject.buildDir}/${project.name}"&#xA;}&#xA;subprojects {&#xA;    project.evaluationDependsOn(&#x27;:app&#x27;)&#xA;}&#xA;&#xA;tasks.register("clean", Delete) {&#xA;    delete rootProject.buildDir&#xA;}&#xA;

    &#xA;

    My gradle.wrapper.properties

    &#xA;

    distributionBase=GRADLE_USER_HOME&#xA;distributionPath=wrapper/dists&#xA;zipStoreBase=GRADLE_USER_HOME&#xA;zipStorePath=wrapper/dists&#xA;distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip&#xA;

    &#xA;

    What i have already tried :

    &#xA;

      &#xA;
    • flutter clean/flutter pub get
    • &#xA;

    • remove .gradle folder/flutter clean/flutter pub get
    • &#xA;

    • remove GeneratedPluginRegistrant.java file then remove .gradle/flutter clean/flutter pub get
    • &#xA;

    &#xA;

    I have this issue in every version of the plugin. There is something wrong in my configurations or maybe this is a plugin issue ?

    &#xA;

  • ffmpeg streaming via rtp reorders streams

    19 juin 2023, par konovification

    I'm streaming a video using ffmpeg -i bbb.mp4 -c:v copy -c:a copy -f rtp_mpegts "rtp://239.1.1.1:8000". The command line output is :

    &#xA;

    ffmpeg version 4.3.6-0&#x2B;deb11u1 Copyright (c) 2000-2023 the FFmpeg developers&#xA;  built with gcc 10 (Debian 10.2.1-6)&#xA;  configuration: --prefix=/usr --extra-version=0&#x2B;deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared&#xA;  WARNING: library configuration mismatch&#xA;  avcodec     configuration: --prefix=/usr --extra-version=0&#x2B;deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc&#xA;  libavutil      56. 51.100 / 56. 51.100&#xA;  libavcodec     58. 91.100 / 58. 91.100&#xA;  libavformat    58. 45.100 / 58. 45.100&#xA;  libavdevice    58. 10.100 / 58. 10.100&#xA;  libavfilter     7. 85.100 /  7. 85.100&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  7.100 /  5.  7.100&#xA;  libswresample   3.  7.100 /  3.  7.100&#xA;  libpostproc    55.  7.100 / 55.  7.100&#xA;Guessed Channel Layout for Input Stream #0.1 : 5.1&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;bbb.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    title           : Big Buck Bunny, Sunflower version&#xA;    artist          : Blender Foundation 2008, Janus Bager Kristensen 2013&#xA;    composer        : Sacha Goedegebure&#xA;    encoder         : Lavf58.45.100&#xA;    comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net&#xA;    genre           : Animation&#xA;  Duration: 00:10:34.64, start: 0.000000, bitrate: 4195 kb/s&#xA;    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 4094 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : GPAC ISO Video Handler&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 96 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : GPAC ISO Audio Handler&#xA;Output #0, rtp_mpegts, to &#x27;rtp://239.1.1.1:8000&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    title           : Big Buck Bunny, Sunflower version&#xA;    artist          : Blender Foundation 2008, Janus Bager Kristensen 2013&#xA;    composer        : Sacha Goedegebure&#xA;    genre           : Animation&#xA;    comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net&#xA;    encoder         : Lavf58.45.100&#xA;    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 4094 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : GPAC ISO Video Handler&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 96 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : GPAC ISO Audio Handler&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (copy)&#xA;  Stream #0:1 -> #0:1 (copy)&#xA;Press [q] to stop, [?] for help&#xA;

    &#xA;

    When I run ffprobe rtp://239.1.1.1:8000 (without restarting the stream), around one in ten times I get

    &#xA;

    Input #0, rtp, from &#x27;rtp://239.1.1.1:8000&#x27;:&#xA;  Duration: N/A, start: 411.533978, bitrate: N/A&#xA;  Program 1 &#xA;    Metadata:&#xA;      service_name    : Service01&#xA;      service_provider: FFmpeg&#xA;    Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc&#xA;    Stream #0:0: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 384 kb/s&#xA;

    &#xA;

    Meaning that the video and audio streams swapped indices. I'm writing a program which uses libav where I rely on this to not happen. What is the reason for this and can it be fixed ?

    &#xA;