Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Autres articles (52)

  • 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

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

Sur d’autres sites (9065)

  • Fragmented MP4 not playing in ffplay/QuickTime/Safari, but in VLC

    6 août 2020, par Stack64

    I encoded a fMP4-Video (HEVC) in Swift using VideoToolbox and CoreMedia. The resulting fragmented MP4 is only playing in VLC.

    


    The library I am using to write the fMP4 is an HEVC-adapted version of this GitHub-Project : https://github.com/krad/morsel

    


    Process of encoding and writing :

    


      

    1. VideoToolbox : Encoding SampleBuffer from the camera (VTCompressionSession, as described in WWDC 2014 Session 513)
    2. 


    3. Using CoreMedia-Functions (e.g. CMVideoFormatDescriptionGetHEVCParameterSetAtIndex, CMVideoFormatDescriptionGetDimensions) to get the encoded streams metadata. I am writing the content of CMFormatDescriptionGetExtension(description, extensionKey: "SampleDescriptionExtensionAtoms" as CFString)["hvcC"] directly to the hvcC box. This box is obviously written correctly, when I alter one bit of the box of the mp4, QuickTime throws an error.
    4. 


    5. I am appending the sample buffer data to the morsel-library, which manages fragmentation and creates the moof and mdat atoms.
    6. 


    


    The result file is playable in VLC, when I just let the playback "run" without doing anything. When I scroll the time in VLC, VLC crashes and the playback stops.

    


    It is also sort of "playable" in Safari and QuickTime (no error message shown, the playback window opens and the correct length of the file is shown, I can even change to playback time / play/pause, but there is no video shown. The window remains empty. And that is the problem I have. I need to get an fMP4 running in Safari and QuickTime.

    


    The file is not playing at all in ffplay (same problem when converting with ffmpeg). The line where the playback time is shown remains nan M-V:    nan fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0 , there are no error messages. The playback just does not start.
When playing the file with ffplay, this is the output :

    


    ffplay version 4.3 Copyright (c) 2003-2020 the FFmpeg developers
  built with Apple clang version 11.0.3 (clang-1103.0.32.62)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp41mp42isomhlsf
    creation_time   : 2020-08-03T20:41:08.000000Z
  Duration: N/A, bitrate: N/A
    Stream #0:0(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv), 1920x1080, SAR 1:1 DAR 16:9, 1000000000.00 tbr, 1000000000.00 tbn, 1000000000.00 tbc (default)
    Metadata:
      creation_time   : 2020-08-03T20:41:08.000000Z
      handler_name    : video
    nan M-V:    nan fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0 


    


    My file has this structure :

    


    ftyp
moov
    mvhd
    trak
        tkhd
        mdia
            mdhd
            hdlr
            minf
                vmhd
                dinf
                    dref
                stbl
                    stsd
                    stts
                    stsc
                    stsz
                    stco
    mvex
        trex
moof-(1)
mdat
moof-(2)
mdat 
...


    


    The result file I want to create should be like the fMP4 served within this HLS playlist : (Example : https://developer.apple.com/streaming/examples/advanced-stream-hevc.html, Playlist : https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8)
This file has the following structure :

    


    ftyp
moov
    mvhd
    trak
        tkhd
        mdia
            mdhd
            hdlr
            minf
                vmhd
                dinf
                    dref
                stbl
                    stsd
                    stts
                    stsc
                    stsz
                    stco
    trak (same structure as above)
    mvex
        trex
moof-(1)
mdat
moof-(2)
mdat 
...


    


    This file from Apple plays perfectly in ffmpeg and QuickTime/Safari. Except for the second trak atom, it has the same structure.

    


    The "good" file is : https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/v14/main.mp4 (It is intended for use in a HLS Playlist I've downloaded it with curl)

    


    The "bad" file is : https://www.transfernow.net/ddl/fmp4_bad (link should work, tested it just now :) ). The video shows a slowly rotating sheet of paper.

    


    Any suggestions what the problem with my file is ?
Thanks in advance !

    


  • How to remove tx3g stream from m4a file [closed]

    12 novembre 2023, par KWottrich

    I have an audiobook that I'm trying to play on my phone. My audio app of choice is struggling with the file, and I think it's because there's an additional stream in the file that it can't handle. VLC for Android plays the file without issue, but I'd rather use my audio app of choice.

    


    When I open the m4a file in VLC for Windows, I see two streams :

    


    VLC Codec Info

    


    I want to get rid of the tx3g stream, and just keep the audio stream. So I turned to ffmpeg to try to copy over only the audio stream. However, no matter what I try, the tx3g stream seems to come along for the ride. I referred to this post to figure out how to remove the tx3g stream, but so far I've been unsuccessful. Can anyone help me figure out how to remove just the tx3g track ? Ideally, I'd like to keep the metadata and album art as well.

    


    I tried to run ffmpeg -i input.m4a -map 0:a:0 -sn -dn -c copy output.m4a, but the tx3g stream is still there. Here is the command output :

    


    ffmpeg version 2021-12-06-git-ef00d40e32-essentials_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11.2.0 (Rev2, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      57. 10.101 / 57. 10.101
  libavcodec     59. 14.100 / 59. 14.100
  libavformat    59.  9.102 / 59.  9.102
  libavdevice    59.  0.101 / 59.  0.101
  libavfilter     8. 19.100 /  8. 19.100
  libswscale      6.  1.101 /  6.  1.101
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002773b2db200] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\input.m4a':
  Metadata:
    major_brand     : M4A
    minor_version   : 512
    compatible_brands: isomiso2
    artist          : [removed]
    title           : [removed]
    album           : [removed]
    date            : 2020
    genre           : Audiobook
    track           : 1/22
    disc            : 1/1
    comment         : [removed]
    copyright       : [removed]
    encoder         : Lavf58.29.100
  Duration: 00:01:45.14, start: 0.000000, bitrate: 132 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 105.000000
      Metadata:
        title           : [removed]
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Data: bin_data (text / 0x74786574), 0 kb/s
    Metadata:
      creation_time   : 2021-11-29T16:23:41.000000Z
  Stream #0:2[0x0]: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 500x500 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn (attached pic)
Output #0, ipod, to 'output.m4a':
  Metadata:
    major_brand     : M4A
    minor_version   : 512
    compatible_brands: isomiso2
    artist          : [removed]
    title           : [removed]
    album           : [removed]
    date            : 2020
    genre           : Audiobook
    track           : 1/22
    disc            : 1/1
    comment         : [removed]
    copyright       : [removed]
    encoder         : Lavf59.9.102
  Chapters:
    Chapter #0:0: start 0.000000, end 105.000000
      Metadata:
        title           : [removed]
  Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=    1632kB time=00:01:45.11 bitrate= 127.2kbits/s speed=1.48e+04x
video:0kB audio:1612kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.233040%


    


  • asp.net core live mp4 streaming

    8 octobre 2020, par kdma

    Prologue :

    


    I have a hikvision ipcamera that streams raw h264 from a rtsp :// url, I need to play this live feed in the browser.

    


    I managed to get a basic RTSP->ffmpeg-> (faststart) mp4 pipeline working and I can play the video when saved to a file.

    


    I don't understand how to make my controller action "streamable".

    


    I've tried various approaches like writing to Response.Body, Transfer-Encoding : chunked but nothing seems to work.
Here is the basic code :

    


    public IActionResult Play5(){    
      var ms = new MemoryStream();
      var muxer = new RTSPToMp4(ms);
      Task.Run(() => muxer.Stream());
      return new FileStreamResult(ms, "video/mp4");
}


    


    The memory stream contains the live feed but the response is empty here is the request\response from chrome :

    


    Request

    


    method: GET
:path: /api/stream/play5
:scheme: https
accept: */*
accept-encoding: identity;q=1, *;q=0
accept-language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7
cache-control: no-cache
pragma: no-cache
range: bytes=0-
referer: https://localhost:5001/Stream
sec-fetch-dest: video
sec-fetch-mode: no-cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36


    


    Response

    


    content-length: 0
content-type: video/mp4
date: Thu, 08 Oct 2020 14:31:06 GMT
server: Kestrel
status: 200


    


    Am I missing something ?