Recherche avancée

Médias (91)

Autres articles (51)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

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

  • Submit enhancements and plugins

    13 avril 2011

    If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
    You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone.

Sur d’autres sites (6145)

  • Add "prefer_tcp" flag to "rtsp_flags"

    4 mars 2014, par Andrey Utkin
    Add "prefer_tcp" flag to "rtsp_flags"
    

    If set, and if TCP is available as RTSP RTP transport, then TCP will be
    tried first as RTP transport.

    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] doc/protocols.texi
    • [DH] libavformat/rtsp.c
    • [DH] libavformat/rtsp.h
  • node-fluent-ffmpeg conversion to mp3 does not fire any "end" or "finish" event

    27 février 2024, par 1voy

    I am downloading a video using ytdl-core and converting it to mp3 using node-fluent-ffmpeg. It seems that the code after the ffmpeg conversion gets executed before the conversion finishes as trying to upload the .mp3 file to a Google Cloud Storage bucket throws an error. I am trying to detect 'end' or 'finish' events but none are being triggered.

    &#xA;

    Code :

    &#xA;

    ytdl(url?.toString() as string)&#xA;    .once(&#x27;data&#x27;, (data) => {&#xA;      console.log(&#x27;start&#x27;, data);&#xA;    })&#xA;    .on(&#x27;progress&#x27;, async function (progress, downloaded, total) {&#xA;      console.log(parseInt(((downloaded / total) * 100).toString()) &#x2B; &#x27;%&#x27;);&#xA;      &#xA;    })&#xA;    .on(&#x27;finish&#x27;, async function () {&#xA;      console.log(&#x27;Download finished...&#x27;);&#xA;      &#xA;      console.log(&#x27;using ffmpeg to convert into mp3&#x27;);&#xA;      Ffmpeg({ source: `/Users/user/project/server/output/${videoId}.mp4` })&#xA;        .setFfmpegPath(ffmpeg.path)&#xA;        .toFormat(&#x27;mp3&#x27;)&#xA;        .saveToFile(`/Users/user/project/server/output/${videoId}.mp3`)&#xA;        .on(&#x27;finish&#x27;, () => {&#xA;          console.log(&#x27;finished conversion&#x27;);&#xA;        });&#xA;      console.log(&#x27;after ffmpeg mp3 conversion&#x27;);&#xA;&#xA;      const storage = new Storage({&#xA;        keyFilename: `./key.json`,&#xA;      });&#xA;&#xA;      const bucketName = &#x27;bucketname&#x27;;&#xA;      const bucket = storage.bucket(bucketName);&#xA;      let mp3_url;&#xA;      console.log(&#xA;        fs.existsSync(`/Users/user/project/server/output/${videoId}.mp3`)&#xA;      ); // returns false&#xA;      bucket.upload(&#xA;        `/Users/user/project/server/output/${videoId}.mp3`,&#xA;// Error uploading: Error: ENOENT: no such file or directory, open &#x27;/Users/me/project/server/output/RMvenf7E-Dg.mp3&#x27;&#xA;        {&#xA;          destination: `${userId}/${videoId}.mp3`,&#xA;        },&#xA;        function (err, file) {&#xA;          if (err) {&#xA;            console.error(`Error uploading: ${err}`);&#xA;          } else {&#xA;            console.log(`mp3 uploaded to ${bucketName}.`);&#xA;            console.log(file?.publicUrl());&#xA;          }&#xA;        }&#xA;      );&#xA;&#xA;      &#xA;    .pipe(&#xA;      fs.createWriteStream(`/Users/me/project/server/output/${videoId}.mp4`)&#xA;    );&#xA;&#xA;  console.log(&#x27;after download and conversion&#x27;);&#xA;&#xA;  req.on(&#x27;close&#x27;, async () => {&#xA;    res.end();&#xA;  });&#xA;

    &#xA;

    Error uploading: Error: ENOENT: no such file or directory, open &#x27;/Users/polo/makeklips/server/output/RMvenf7E-Dg.mp3&#x27;&#xA;[1] /Users/me/project/server/node_modules/.pnpm/fluent-ffmpeg@2.1.2/node_modules/fluent-ffmpeg/lib/processor.js:182&#xA;[1]           handleExit(new Error(&#x27;ffmpeg exited with code &#x27; &#x2B; code));&#xA;[1]                      ^&#xA;[1] Error: ffmpeg exited with code 1: Output #0, mp3, to &#x27;/Users/me/project/server/output/RMvenf7E-Dg.mp3&#x27;:&#xA;[1] Output file #0 does not contain any stream&#xA;

    &#xA;

  • Edit H264 video stream header information ("start_pts" and "start_time")

    27 juin 2020, par David

    I have a video clip that appears to be slightly corrupted. Does not play on VLC but works on Potplayer. I used FFprobe to get information on the video.

    &#xA;

    The problem appears to be with the start points of the video stream :

    &#xA;

    time_base=1/90000&#xA;start_pts=585050940&#xA;start_time=6500.566000&#xA;duration_ts=585050940&#xA;duration=6500.566000&#xA;bit_rate=3123218&#xA;

    &#xA;

    I'm just wondering whether it is possible to manually edit the "start_pts" and "start_time" to 0 ? Is there any specific software to do this ? Due to large size of video file, I couldn't load it in Notepad++.

    &#xA;

    Full ffprobe output shown below :

    &#xA;

    # ffprobe output&#xA;&#xA;[streams.stream.0]&#xA;index=0&#xA;codec_name=h264&#xA;codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10&#xA;profile=unknown&#xA;codec_type=video&#xA;codec_time_base=1/60&#xA;codec_tag_string=avc1&#xA;codec_tag=0x31637661&#xA;width=1920&#xA;height=1080&#xA;coded_width=1920&#xA;coded_height=1080&#xA;closed_captions=0&#xA;has_b_frames=0&#xA;sample_aspect_ratio=N/A&#xA;display_aspect_ratio=N/A&#xA;pix_fmt=unknown&#xA;level=-99&#xA;color_range=unknown&#xA;color_space=unknown&#xA;color_transfer=unknown&#xA;color_primaries=unknown&#xA;chroma_location=unspecified&#xA;field_order=unknown&#xA;timecode=N/A&#xA;refs=1&#xA;is_avc=true&#xA;nal_length_size=4&#xA;id=N/A&#xA;r_frame_rate=30/1&#xA;avg_frame_rate=30/1&#xA;time_base=1/90000&#xA;start_pts=585050940&#xA;start_time=6500.566000&#xA;duration_ts=585050940&#xA;duration=6500.566000&#xA;bit_rate=3123218&#xA;max_bit_rate=N/A&#xA;bits_per_raw_sample=N/A&#xA;nb_frames=195017&#xA;nb_read_frames=N/A&#xA;nb_read_packets=N/A&#xA;&#xA;[streams.stream.0.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;&#xA;[streams.stream.0.tags]&#xA;language=und&#xA;handler_name=VideoHandler&#xA;&#xA;[streams.stream.1]&#xA;index=1&#xA;codec_name=aac&#xA;codec_long_name=AAC (Advanced Audio Coding)&#xA;profile=LC&#xA;codec_type=audio&#xA;codec_time_base=1/48000&#xA;codec_tag_string=mp4a&#xA;codec_tag=0x6134706d&#xA;sample_fmt=fltp&#xA;sample_rate=48000&#xA;channels=2&#xA;channel_layout=stereo&#xA;bits_per_sample=0&#xA;id=N/A&#xA;r_frame_rate=0/0&#xA;avg_frame_rate=0/0&#xA;time_base=1/48000&#xA;start_pts=0&#xA;start_time=0.000000&#xA;duration_ts=312029184&#xA;duration=6500.608000&#xA;bit_rate=189376&#xA;max_bit_rate=189376&#xA;bits_per_raw_sample=N/A&#xA;nb_frames=304718&#xA;nb_read_frames=N/A&#xA;nb_read_packets=N/A&#xA;&#xA;[streams.stream.1.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;&#xA;[streams.stream.1.tags]&#xA;language=eng&#xA;handler_name=SoundHandler&#xA;&#xA;[format]&#xA;filename=D\:\\Start\\test.mp4&#xA;nb_streams=2&#xA;nb_programs=0&#xA;format_name=mov,mp4,m4a,3gp,3g2,mj2&#xA;format_long_name=QuickTime / MOV&#xA;start_time=0.000000&#xA;duration=6500.608000&#xA;size=2703218140&#xA;bit_rate=3326726&#xA;probe_score=100&#xA;&#xA;[format.tags]&#xA;major_brand=isom&#xA;minor_version=512&#xA;compatible_brands=isomiso2avc1mp41&#xA;

    &#xA;