Recherche avancée

Médias (91)

Autres articles (71)

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

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accé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, par

    Dixit 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 (7905)

  • lavc : Check codec_whitelist early in avcodec_open2()

    30 juillet 2024, par Dale Curtis
    lavc : Check codec_whitelist early in avcodec_open2()
    

    This ensures that if a codec isn't on codec_whitelist, trying to open it
    will not trigger ff_codec_close(), which could invalidate useful
    information still present in the context.

    Signed-off-by : Dale Curtis <dalecurtis@chromium.org>
    Signed-off-by : Anton Khirnov <anton@khirnov.net>

    • [DH] libavcodec/avcodec.c
  • avcodec/h2645_sei : use the RefStruct API for film_grain_characteristics

    25 octobre 2024, par James Almer
    avcodec/h2645_sei : use the RefStruct API for film_grain_characteristics
    

    And ensure the buffer is synced between threads.
    Based on a patch by Dale Curtis <dalecurtis@chromium.org>

    Signed-off-by : James Almer <jamrial@gmail.com>

    • [DH] libavcodec/h2645_sei.c
    • [DH] libavcodec/h2645_sei.h
    • [DH] libavcodec/h264_sei.c
    • [DH] libavcodec/h264_slice.c
    • [DH] libavcodec/hevc/hevcdec.c
  • Handling Timestamp Discontinuity and Non-Monotonic DTS Errors When Multiplexing Multiple TV Programs with FFmpeg

    13 août 2024, par the_man

    I'm encountering issues with timestamp discontinuities and non-monotonic DTS errors while attempting to multiplex multiple TV programs from an MPEG-TS input stream using FFmpeg.&#xA;The input is a live MPEG-TS stream delivered via UDP.&#xA;Information about input from ffmpeg :

    &#xA;

    Input #0, mpegts, from &#x27;udp://192.168.0.20:1236&#x27;:&#xA;  Duration: N/A, start: 13165.765389, bitrate: N/A&#xA;  Program 10352&#xA;    Metadata:&#xA;      service_name    : MDR Sachsen HD&#xA;      service_provider: DD&#xA;  Stream #0:1[0x65]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn&#xA;  Stream #0:2[0x66](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s&#xA;  Stream #0:3[0x67](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s (visual impaired) (descriptions)&#xA;  Stream #0:4[0x68](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s (hearing impaired)&#xA;  Stream #0:5[0x69](deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006), 492x250&#xA;  Stream #0:6[0x6a](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 448 kb/s&#xA;  Stream #0:7[0x6b]: Unknown: none ([5][0][0][0] / 0x0005)&#xA;  Stream #0:8[0x6c](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)&#xA;  Program 10355&#xA;    Metadata:&#xA;      service_name    : hr-fernsehen HD&#xA;      service_provider: DD&#xA;  Stream #0:13[0xc9]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn&#xA;  Stream #0:14[0xca](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s&#xA;  Stream #0:15[0xcb](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (visual impaired) (descriptions)&#xA;  Stream #0:16[0xcc](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (hearing impaired)&#xA;  Stream #0:9[0xcd](deu): Subtitle: dvb_teletext, 492x250&#xA;  Stream #0:17[0xce](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 448 kb/s&#xA;  Stream #0:18[0xcf]: Unknown: none ([5][0][0][0] / 0x0005)&#xA;  Stream #0:19[0xd0](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)&#xA;  Program 73&#xA;    Metadata:&#xA;      service_name    : DMAX Austria&#xA;      service_provider: DD&#xA;  Stream #0:11[0x12e](deu): Subtitle: dvb_teletext, 492x250&#xA;  Stream #0:10[0x12d]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 544x576 [SAR 32:17 DAR 16:9], 25 fps, 25 tbr, 90k tbn&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 15000000/0/0 buffer size: 1835008 vbv_delay: N/A&#xA;  Stream #0:12[0x12f](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)&#xA;  Stream #0:20[0x130]: Unknown: none ([5][0][0][0] / 0x0005)&#xA;  No Program&#xA;  Stream #0:0[0x12]: Data: epg&#xA;

    &#xA;

    The goal is : to map several video and audio streams into a single MPEG-TS output while maintaining a constant bitrate (CBR) of 31668449 bps and outputting to a DVB device.

    &#xA;

    Say if I map one Program (program_num=10352:title="MDR Sachsen HD") with all their streams, like that :

    &#xA;

    ffmpeg  -i "udp://192.168.0.20:1236?fifo_size=10000000&amp;overrun_nonfatal=1&amp;reconnect=1&amp;reconnect_streamed=1&amp;reconnect_delay_max=2" \&#xA;-map 0:v:i:0x65 -map 0:a:i:0x66 -map 0:a:i:0x67 -map 0:a:i:0x68 -map 0:a:i:0x6a \&#xA;-program program_num=10352:title="MDR Sachsen HD":st=0:st=1:st=2:st=3:st=4 \&#xA;-ignore_unknown \&#xA;-c copy -copyts -muxrate 31668449 -f mpegts -y /dev/dvb/adapter0/mod0&#xA;

    &#xA;

    It works very well !

    &#xA;

    But if i try to map multiple programs, each with its own video and audio streams, as follows :

    &#xA;

    Program 10352 : MDR Sachsen HD

    &#xA;

      &#xA;
    • Video : H.264, 1280x720, 50 fps
    • &#xA;

    • Multiple audio streams : MP2 and AC3
    • &#xA;

    &#xA;

    Program 73 : DMAX Austria

    &#xA;

      &#xA;
    • Video : MPEG2, 544x576, 25 fps
    • &#xA;

    • Multiple audio streams : MP2 and AC3
    • &#xA;

    &#xA;

    I encounter errors like :

    &#xA;

      &#xA;
    • Timestamp Discontinuity : Errors indicating mismatches in timestamps&#xA;when FFmpeg aligns the streams.
    • &#xA;

    • Non-Monotonic DTS : Warnings about DTS&#xA;values not being strictly increasing, leading to potential&#xA;synchronization issues.
    • &#xA;

    &#xA;

    Questions :

    &#xA;

      &#xA;
    1. How can I resolve timestamp discontinuities and non-monotonic DTS errors when multiplexing multiple TV channels into a single MPEG-TS stream with FFmpeg ?
    2. &#xA;

    3. Are there specific FFmpeg options or settings that can help synchronize streams with different characteristics ?
    4. &#xA;

    5. Are there alternative tools or approaches for achieving constant bitrate multiplexing of multiple TV channels that might handle these synchronization issues better ?
    6. &#xA;

    &#xA;

    Any insights or suggestions on handling these errors and successfully multiplex multiple TV channels would be greatly appreciated.

    &#xA;


    &#xA;

    I have tried next options (nothing helps thought ) :

    &#xA;

      &#xA;
    • async 1 -vsync 1 -> handle synchronization issues by adjusting the audio and video streams to align better.
    • &#xA;

    • copyts -> (copy timestamps) to preserve original timestamps
    • &#xA;

    • fflags :&#xA;
        &#xA;
      • +genpts -> flag tells FFmpeg to generate presentation timestamps (PTS) when they are missing.
      • &#xA;

      • +discardcorrupt -> Discards corrupted frames.
      • &#xA;

      • +igndts -> Ignores DTS (Decoding Time Stamps) if present.
      • &#xA;

      &#xA;

    • &#xA;

    • avoid_negative_ts make_zero -> Adjusts the timestamps to avoid negative values.
    • &#xA;

    • mpegts_flags : Configures MPEG-TS specific flags for the output.&#xA;
        &#xA;
      • +resend_headers : Resends the PAT/PMT headers periodically.
      • &#xA;

      • +pat_pmt_at_frames : Forces PAT/PMT to be sent at the start of frames.
      • &#xA;

      • +latm : Enables LATM (Low-Level Audio Transport Multiplex).
      • &#xA;

      &#xA;

    • &#xA;

    • pcr_period 20 -> Sets the Periodical PCR (Program Clock Reference) interval in milliseconds.
    • &#xA;

    &#xA;