Recherche avancée

Médias (91)

Autres articles (72)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

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

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

  • tools/target_dec_fuzzer : set parser codec id to avoid assertion failure

    6 juillet 2018, par Michael Niedermayer
    tools/target_dec_fuzzer : set parser codec id to avoid assertion failure
    

    Fixes : 9211/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GSM_fuzzer-5680396581732352
    Fixes : assertion failure

    Found-by : continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] tools/target_dec_fuzzer.c
  • Only make XDomainRequest Transport available if cross-domain XHR requests are not available.

    9 février 2012, par Sebastian Tschan

    m js/cors/jquery.xdr-transport.js Only make XDomainRequest Transport available if cross-domain XHR requests are not available.

  • Safari sends excessive HTTP range requests during HTML5 MOV playback

    28 mai, par Lucy

    I am currently developing a web application based on React and Next.js, and I use the react-player library to play user-uploaded videos stored on AWS S3. The supported upload video formats are mp4, mov, and mkv, with codecs including H.264 or H.265 (HEVC).

    &#xA;

    Problem

    &#xA;

    However, some H.264 videos in the mov format exhibit noticeably poor playback performance only in the Safari browser. The videos do not play smoothly and frequently experience stuttering or delays.

    &#xA;

    How Safari Handles Range Requests (As I Understand It) :

    &#xA;

      &#xA;
    1. Safari first sends a normal GET request to check if the server supports Range requests. If the server responds with the header Accept-Ranges : bytes, Safari closes the connection.
    2. &#xA;

    3. Then, Safari sends a very small range request like Range : bytes=0-1 to confirm it receives a 206 Partial Content response.
    4. &#xA;

    5. Next, Safari requests some parts from the beginning and the end of the file to locate metadata such as the moov atom in MP4 files.
    6. &#xA;

    7. After that, actual streaming begins, but Safari does not request the entire file at once ; instead, it divides the needed parts into multiple small Range requests.
    8. &#xA;

    &#xA;

    Example of Actual Problematic Requests

    &#xA;

    Below are some of the Range requests Safari makes for the problematic .mov video (H.264 codec) :

    &#xA;

    # Request - 1&#xA;Connection: keep-alive&#xA;Range: bytes=0-1&#xA;&#xA;# Response&#xA;HTTP/1.1 206 Partial Content&#xA;Accept-Ranges: bytes&#xA;Content-Disposition: attachment;filename*=utf-8&#x27;&#x27;test.mov&#xA;Content-Length: 2&#xA;Content-Range: bytes 0-1/102801747&#xA;Content-Type: video/quicktime&#xA;&#xA;-------------------------------------&#xA;# Request - 2&#xA;Connection: Keep-Alive&#xA;Range: bytes=0-102801746&#xA;&#xA;# Response&#xA;HTTP/1.1 206 Partial Content&#xA;Accept-Ranges: bytes&#xA;Content-Disposition: attachment;filename*=utf-8&#x27;&#x27;test.mov&#xA;Content-Length: 102801747&#xA;Content-Range: bytes 0-102801746/102801747&#xA;Content-Type: video/quicktime&#xA;&#xA;-------------------------------------&#xA;# Request - 3&#xA;Connection: Keep-Alive&#xA;Range: bytes=102760448-102801746&#xA;&#xA;# Response - 3&#xA;HTTP/1.1 206 Partial Content&#xA;Accept-Ranges: bytes&#xA;Content-Disposition: attachment;filename*=utf-8&#x27;&#x27;test.mov&#xA;Content-Length: 41299&#xA;Content-Range: bytes 102760448-102801746/102801747&#xA;Content-Type: video/quicktime&#xA;&#xA;-------------------------------------&#xA;# Request - 4&#xA;Connection: keep-alive&#xA;Range: bytes=3014656-3080191 # 64KB&#xA;&#xA;# Response - 4&#xA;HTTP/1.1 206 Partial Content&#xA;Accept-Ranges: bytes&#xA;Content-Disposition: attachment;filename*=utf-8&#x27;&#x27;IMG_7929.mov&#xA;Content-Length: 65536&#xA;Content-Range: bytes 3014656-3080191/102801747&#xA;Content-Type: video/quicktime&#xA;

    &#xA;

    Safari continues to send hundreds of similar small Range requests repeatedly, gradually downloading the file.

    &#xA;

    This causes increased network load, which ultimately leads to video stuttering or playback delays.

    &#xA;

    Example of another .mov file that works properly :

    &#xA;

    In contrast, another .mov video using the same format and codec (H.264) sends Range requests over much larger byte ranges, downloading about 30MB of data at once. In this case, the video plays smoothly.

    &#xA;

    # Request &#xA;Connection: Keep-Alive&#xA;Range: bytes=1310534-673918954 # Request : 672MB, Actual Downloaded : 32MB&#xA;&#xA;# Response&#xA;Accept-Ranges: bytes&#xA;Content-Disposition: attachment;filename*=utf-8&#x27;&#x27;mov-example-video-download-4k-uhd-3840x2160.mov&#xA;Content-Length: 672608421&#xA;Content-Range: bytes 1310534-673918954/673918955&#xA;Content-Type: video/quicktime&#xA;

    &#xA;

    Question

    &#xA;

    In Safari, for certain video files, the browser repeatedly closes the connection after receiving only a few kilobytes per request and immediately sends the next request. As a result, dozens or even hundreds of small range requests occur consecutively. This causes increased connection overhead and latency, and although the web server can deliver data at sufficient speed, the player does not receive data in time, leading to poor and stuttering video playback.

    &#xA;

      &#xA;
    1. What could be the reason Safari repeatedly makes these very small requests for certain files ?
    2. &#xA;

    3. Could the internal structure of the video file (such as the moov atom) influence this request pattern ?
    4. &#xA;

    &#xA;

    f you have any similar experience or advice, please share.

    &#xA;

    What I'ved tried

    &#xA;

      &#xA;
    • Using ffmpeg to move the moov atom to the beginning of the file with -movflags faststart does not resolve the issue — the same problem persists.
    • &#xA;

    • Converting the exact same video to MP4 format and testing it results in normal playback without issues.
    • &#xA;

    &#xA;

    Test Environment

    &#xA;

      &#xA;
    • Macbook pro 16
    • &#xA;

    • mac OS - Sequoia 15.5
    • &#xA;

    • Safari - Latest
    • &#xA;

    &#xA;

    File information

    &#xA;

    Due to company policy, I am unable to share the problematic video files directly. However, I am attaching the file information obtained via ffprobe for your reference.

    &#xA;

    ffprobe -v error -show_format -show_streams -print_format json test.mov&#xA;&#xA;{&#xA;    "streams": [&#xA;        {&#xA;            "index": 0,&#xA;            "codec_name": "h264",&#xA;            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",&#xA;            "profile": "High",&#xA;            "codec_type": "video",&#xA;            "codec_tag_string": "avc1",&#xA;            "codec_tag": "0x31637661",&#xA;            "width": 3840,&#xA;            "height": 2160,&#xA;            "coded_width": 3840,&#xA;            "coded_height": 2160,&#xA;            "closed_captions": 0,&#xA;            "film_grain": 0,&#xA;            "has_b_frames": 0,&#xA;            "pix_fmt": "yuv420p",&#xA;            "level": 51,&#xA;            "color_range": "tv",&#xA;            "color_space": "bt709",&#xA;            "color_transfer": "bt709",&#xA;            "color_primaries": "bt709",&#xA;            "chroma_location": "left",&#xA;            "field_order": "progressive",&#xA;            "refs": 1,&#xA;            "is_avc": "true",&#xA;            "nal_length_size": "4",&#xA;            "id": "0x1",&#xA;            "r_frame_rate": "30000/1001",&#xA;            "avg_frame_rate": "18200/607",&#xA;            "time_base": "1/600",&#xA;            "start_pts": 0,&#xA;            "start_time": "0.000000",&#xA;            "duration_ts": 10925,&#xA;            "duration": "18.208333",&#xA;            "bit_rate": "44900923",&#xA;            "bits_per_raw_sample": "8",&#xA;            "nb_frames": "546",&#xA;            "extradata_size": 158,&#xA;            "disposition": {&#xA;                "default": 1,&#xA;                "dub": 0,&#xA;                "original": 0,&#xA;                "comment": 0,&#xA;                "lyrics": 0,&#xA;                "karaoke": 0,&#xA;                "forced": 0,&#xA;                "hearing_impaired": 0,&#xA;                "visual_impaired": 0,&#xA;                "clean_effects": 0,&#xA;                "attached_pic": 0,&#xA;                "timed_thumbnails": 0,&#xA;                "non_diegetic": 0,&#xA;                "captions": 0,&#xA;                "descriptions": 0,&#xA;                "metadata": 0,&#xA;                "dependent": 0,&#xA;                "still_image": 0,&#xA;                "multilayer": 0&#xA;            },&#xA;            "tags": {&#xA;                "creation_time": "",&#xA;                "language": "und",&#xA;                "handler_name": "Core Media Video",&#xA;                "vendor_id": "[0][0][0][0]",&#xA;                "encoder": "H.264"&#xA;            }&#xA;        },&#xA;        {&#xA;            "index": 1,&#xA;            "codec_name": "aac",&#xA;            "codec_long_name": "AAC (Advanced Audio Coding)",&#xA;            "profile": "LC",&#xA;            "codec_type": "audio",&#xA;            "codec_tag_string": "mp4a",&#xA;            "codec_tag": "0x6134706d",&#xA;            "sample_fmt": "fltp",&#xA;            "sample_rate": "44100",&#xA;            "channels": 2,&#xA;            "channel_layout": "stereo",&#xA;            "bits_per_sample": 0,&#xA;            "initial_padding": 0,&#xA;            "id": "0x2",&#xA;            "r_frame_rate": "0/0",&#xA;            "avg_frame_rate": "0/0",&#xA;            "time_base": "1/44100",&#xA;            "start_pts": 0,&#xA;            "start_time": "0.000000",&#xA;            "duration_ts": 802988,&#xA;            "duration": "18.208345",&#xA;            "bit_rate": "187218",&#xA;            "nb_frames": "787",&#xA;            "extradata_size": 2,&#xA;            "disposition": {&#xA;                "default": 1,&#xA;                "dub": 0,&#xA;                "original": 0,&#xA;                "comment": 0,&#xA;                "lyrics": 0,&#xA;                "karaoke": 0,&#xA;                "forced": 0,&#xA;                "hearing_impaired": 0,&#xA;                "visual_impaired": 0,&#xA;                "clean_effects": 0,&#xA;                "attached_pic": 0,&#xA;                "timed_thumbnails": 0,&#xA;                "non_diegetic": 0,&#xA;                "captions": 0,&#xA;                "descriptions": 0,&#xA;                "metadata": 0,&#xA;                "dependent": 0,&#xA;                "still_image": 0,&#xA;                "multilayer": 0&#xA;            },&#xA;            "tags": {&#xA;                "creation_time": "",&#xA;                "language": "und",&#xA;                "handler_name": "Core Media Audio",&#xA;                "vendor_id": "[0][0][0][0]"&#xA;            }&#xA;        },&#xA;        {&#xA;            "index": 2,&#xA;            "codec_type": "data",&#xA;            "codec_tag_string": "mebx",&#xA;            "codec_tag": "0x7862656d",&#xA;            "id": "0x3",&#xA;            "r_frame_rate": "0/0",&#xA;            "avg_frame_rate": "0/0",&#xA;            "time_base": "1/600",&#xA;            "start_pts": 0,&#xA;            "start_time": "0.000000",&#xA;            "duration_ts": 10925,&#xA;            "duration": "18.208333",&#xA;            "bit_rate": "4",&#xA;            "nb_frames": "1",&#xA;            "disposition": {&#xA;                "default": 1,&#xA;                "dub": 0,&#xA;                "original": 0,&#xA;                "comment": 0,&#xA;                "lyrics": 0,&#xA;                "karaoke": 0,&#xA;                "forced": 0,&#xA;                "hearing_impaired": 0,&#xA;                "visual_impaired": 0,&#xA;                "clean_effects": 0,&#xA;                "attached_pic": 0,&#xA;                "timed_thumbnails": 0,&#xA;                "non_diegetic": 0,&#xA;                "captions": 0,&#xA;                "descriptions": 0,&#xA;                "metadata": 0,&#xA;                "dependent": 0,&#xA;                "still_image": 0,&#xA;                "multilayer": 0&#xA;            },&#xA;            "tags": {&#xA;                "creation_time": "",&#xA;                "language": "und",&#xA;                "handler_name": "Core Media Metadata"&#xA;            }&#xA;        },&#xA;        {&#xA;            "index": 3,&#xA;            "codec_type": "data",&#xA;            "codec_tag_string": "mebx",&#xA;            "codec_tag": "0x7862656d",&#xA;            "id": "0x4",&#xA;            "r_frame_rate": "0/0",&#xA;            "avg_frame_rate": "0/0",&#xA;            "time_base": "1/600",&#xA;            "start_pts": 0,&#xA;            "start_time": "0.000000",&#xA;            "duration_ts": 10925,&#xA;            "duration": "18.208333",&#xA;            "bit_rate": "6756",&#xA;            "nb_frames": "80",&#xA;            "disposition": {&#xA;                "default": 1,&#xA;                "dub": 0,&#xA;                "original": 0,&#xA;                "comment": 0,&#xA;                "lyrics": 0,&#xA;                "karaoke": 0,&#xA;                "forced": 0,&#xA;                "hearing_impaired": 0,&#xA;                "visual_impaired": 0,&#xA;                "clean_effects": 0,&#xA;                "attached_pic": 0,&#xA;                "timed_thumbnails": 0,&#xA;                "non_diegetic": 0,&#xA;                "captions": 0,&#xA;                "descriptions": 0,&#xA;                "metadata": 0,&#xA;                "dependent": 0,&#xA;                "still_image": 0,&#xA;                "multilayer": 0&#xA;            },&#xA;            "tags": {&#xA;                "creation_time": "",&#xA;                "language": "und",&#xA;                "handler_name": "Core Media Metadata"&#xA;            }&#xA;        },&#xA;        {&#xA;            "index": 4,&#xA;            "codec_type": "data",&#xA;            "codec_tag_string": "mebx",&#xA;            "codec_tag": "0x7862656d",&#xA;            "id": "0x5",&#xA;            "r_frame_rate": "0/0",&#xA;            "avg_frame_rate": "0/0",&#xA;            "time_base": "1/600",&#xA;            "start_pts": 0,&#xA;            "start_time": "0.000000",&#xA;            "duration_ts": 10925,&#xA;            "duration": "18.208333",&#xA;            "bit_rate": "50764",&#xA;            "nb_frames": "546",&#xA;            "disposition": {&#xA;                "default": 1,&#xA;                "dub": 0,&#xA;                "original": 0,&#xA;                "comment": 0,&#xA;                "lyrics": 0,&#xA;                "karaoke": 0,&#xA;                "forced": 0,&#xA;                "hearing_impaired": 0,&#xA;                "visual_impaired": 0,&#xA;                "clean_effects": 0,&#xA;                "attached_pic": 0,&#xA;                "timed_thumbnails": 0,&#xA;                "non_diegetic": 0,&#xA;                "captions": 0,&#xA;                "descriptions": 0,&#xA;                "metadata": 0,&#xA;                "dependent": 0,&#xA;                "still_image": 0,&#xA;                "multilayer": 0&#xA;            },&#xA;            "tags": {&#xA;                "creation_time": "",&#xA;                "language": "und",&#xA;                "handler_name": "Core Media Metadata"&#xA;            }&#xA;        },&#xA;        {&#xA;            "index": 5,&#xA;            "codec_type": "data",&#xA;            "codec_tag_string": "mebx",&#xA;            "codec_tag": "0x7862656d",&#xA;            "id": "0x6",&#xA;            "r_frame_rate": "0/0",&#xA;            "avg_frame_rate": "0/0",&#xA;            "time_base": "1/600",&#xA;            "start_pts": 0,&#xA;            "start_time": "0.000000",&#xA;            "duration_ts": 10925,&#xA;            "duration": "18.208333",&#xA;            "bit_rate": "19",&#xA;            "nb_frames": "1",&#xA;            "disposition": {&#xA;                "default": 1,&#xA;                "dub": 0,&#xA;                "original": 0,&#xA;                "comment": 0,&#xA;                "lyrics": 0,&#xA;                "karaoke": 0,&#xA;                "forced": 0,&#xA;                "hearing_impaired": 0,&#xA;                "visual_impaired": 0,&#xA;                "clean_effects": 0,&#xA;                "attached_pic": 0,&#xA;                "timed_thumbnails": 0,&#xA;                "non_diegetic": 0,&#xA;                "captions": 0,&#xA;                "descriptions": 0,&#xA;                "metadata": 0,&#xA;                "dependent": 0,&#xA;                "still_image": 0,&#xA;                "multilayer": 0&#xA;            },&#xA;            "tags": {&#xA;                "creation_time": "",&#xA;                "language": "und",&#xA;                "handler_name": "Core Media Metadata"&#xA;            }&#xA;        }&#xA;    ],&#xA;    "format": {&#xA;        "filename": "test.mov",&#xA;        "nb_streams": 6,&#xA;        "nb_programs": 0,&#xA;        "nb_stream_groups": 0,&#xA;        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",&#xA;        "format_long_name": "QuickTime / MOV",&#xA;        "start_time": "0.000000",&#xA;        "duration": "18.208345",&#xA;        "size": "102801747",&#xA;        "bit_rate": "45166871",&#xA;        "probe_score": 100,&#xA;        "tags": {&#xA;            "major_brand": "qt  ",&#xA;            "minor_version": "0",&#xA;            "compatible_brands": "qt  ",&#xA;            "creation_time": "",&#xA;            "com.apple.quicktime.location.accuracy.horizontal": "76.200233",&#xA;            "com.apple.quicktime.full-frame-rate-playback-intent": "0",&#xA;            "com.apple.quicktime.location.ISO6709": "",&#xA;            "com.apple.quicktime.make": "Apple",&#xA;            "com.apple.quicktime.model": "iPhone 15 Pro",&#xA;            "com.apple.quicktime.software": "18.4.1",&#xA;            "com.apple.quicktime.creationdate": ""&#xA;        }&#xA;    }&#xA;}&#xA;

    &#xA;