Recherche avancée

Médias (17)

Mot : - Tags -/wired

Autres articles (53)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (10486)

  • Code can not read property 1 of undefined [closed]

    25 mai 2023, par Jesse Copas

    I'm a very new programmer and am working on a Tdarr plugin in JS.
Everything works fine until a 4k file tries to get transcoded and it fails with this log

    


    2023-05-24T19:09:54.906Z ZoBKWMMKG:Node\[hidden-hog\]:Worker\[tall-tuna\]:{"pluginInputs":{"BitRate":"4000","ResolutionSelection":"1080p","Container":"mkv","AudioType":"AAC","FrameRate":"24"}}

2023-05-24T19:09:54.907Z ZoBKWMMKG:Node\[hidden-hog\]:Worker\[tall-tuna\]:Error TypeError: Cannot read property '1' of undefined


    


    It's saying that it's unable to read property 1 of undefined and I'm looked and looked and looked and can't find what it is referring to. Hoping to get another set of eyes on it
The plugin Code is here

    


    /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
/* eslint-disable no-restricted-globals */
const details = () => ({
  id: 'Tdarr_Plugin_Jeso_AV1_HandBrake_Transcode',
  Stage: 'Pre-processing',
  Name: 'AV1 HandBrake Transcoder',
  Type: 'Video',
  Operation: 'Transcode',
  Description: 'Transcodes to AV1 at the selected Bitrate. This is best used with Remux Files.',
  Version: '2.1.3',
  Tags: 'HandBrake,configurable',
  Inputs: [
    {
      name: 'BitRate',
      type: 'string',
      defaultValue: '4000',
      inputUI: {
        type: 'text',
      },
      tooltip: `
        ~ Requested Bitrate ~ \\n
        Put in the Bitrate you want to process to in Kbps. For example 4000Kbps is 4Mbps. `,
    },
    {
      name: 'ResolutionSelection',
      type: 'string',
      defaultValue: '1080p',
      inputUI: {
        type: 'dropdown',
        options: [
          '8KUHD',
          '4KUHD',
          '1080p',
          '720p',
          '480p',
        ],
      },
      // eslint-disable-next-line max-len
      tooltip: 'Any Resolution larger than this will become this Resolution same as the bitrate if the Res is lower than the selected it will use the res of the file as to not cause bloating of file size.',
    },
    {
      name: 'Container',
      type: 'string',
      defaultValue: 'mkv',
      inputUI: {
        type: 'dropdown',
        options: [
          'mp4',
          'mkv',
        ],
      },
      tooltip: ` Container Type \\n\\n
          mkv or mp4.\\n`,
    },
    {
      name: 'AudioType',
      type: 'string',
      defaultValue: 'AAC',
      inputUI: {
        type: 'dropdown',
        options: [
          'AAC',
          'EAC3',
          'MP3',
          'Vorbis',
          'Flac16',
          'Flac24',
        ],
      },
      // eslint-disable-next-line max-len
      tooltip: 'Set Audio container type that you want to use',
    },
    {
      name: 'FrameRate',
      type: 'string',
      defaultValue: '24',
      inputUI: {
        type: 'text',
      },
      // eslint-disable-next-line max-len
      tooltip: 'If the files framerate is higher than 24 and you want to maintain that framerate you can do so here',
    },
  ],
});
const MediaInfo = {
  videoHeight: '',
  videoWidth: '',
  videoFPS: '',
  videoBR: '',
  videoBitDepth: '',
  overallBR: '',
  videoResolution: '',
}; // var MediaInfo
// Easier for our functions if response has global scope.
const response = {
  processFile: false,
  preset: '',
  container: '.mkv',
  handBrakeMode: true,
  FFmpegMode: false,
  reQueueAfter: true,
  infoLog: '',
}; // var response
// Finds the first video stream and populates some useful variables
function getMediaInfo(file) {
  let videoIdx = -1;
  for (let i = 0; i < file.ffProbeData.streams.length; i += 1) {
    const strstreamType = file.ffProbeData.streams[i].codec_type.toLowerCase();
    // Looking For Video
    // Check if stream is a video.
    if (videoIdx === -1 && strstreamType === 'video') {
      videoIdx = i;
      // get video streams resolution
      MediaInfo.videoResolution = `${file.ffProbeData.streams[i].height}x${file.ffProbeData.streams[i].width}`;
      MediaInfo.videoHeight = Number(file.ffProbeData.streams[i].height);
      MediaInfo.videoWidth = Number(file.ffProbeData.streams[i].width);
      MediaInfo.videoFPS = Number(file.mediaInfo.track[i + 1].FrameRate) || 25;
      // calulate bitrate from dimensions and fps of file
      MediaInfo.videoBR = (MediaInfo.videoHeight * MediaInfo.videoWidth * MediaInfo.videoFPS * 0.08).toFixed(0);
    }
  }
} // end  getMediaInfo()
// define resolution order from ResolutionSelection from biggest to smallest
const resolutionOrder = ['8KUHD', '4KUHD', '1080p', '720p', '480p'];
// define the width and height of each resolution from the resolution order
const resolutionsdimensions = {
  '8KUHD': '--width 7680 --height 4320',
  '4KUHD': '--width 3840 --height 2160',
  '1080p': '--width 1920 --height 1080',
  '720p': '--width 1280 --height 720',
  '480p': '--width 640 --height 480',
};
// eslint-disable-next-line no-unused-vars
const plugin = (file, librarySettings, inputs) => {
  // eslint-disable-next-line no-unused-vars
  const importFresh = require('import-fresh');
  // eslint-disable-next-line no-unused-vars
  const library = importFresh('../methods/library.js');
  // eslint-disable-next-line no-unused-vars
  const lib = require('../methods/lib')();
  // Get the selected resolution from the 'ResolutionSelection' variable
  const selectedResolution = inputs.ResolutionSelection;
  getMediaInfo(file);
  // use mediainfo to match height and width to a resolution on resolutiondimensions
  let dimensions = resolutionsdimensions[selectedResolution];
  // if the file is smaller than the selected resolution then use the file resolution
  if (MediaInfo.videoHeight < dimensions.split(' ')[3] || MediaInfo.videoWidth < dimensions.split(' ')[1]) {
    dimensions = `--width ${MediaInfo.videoWidth} --height ${MediaInfo.videoHeight}`;
    // eslint-disable-next-line brace-style
  }
  // read the bitrate of the video stream
  let videoBitRate = MediaInfo.videoBR;
  // if videoBitrate is over 1000000 devide by 100 to get the bitrate in Kbps
  if (videoBitRate > 1000000) {
    videoBitRate /= 100;
  } else { videoBitRate /= 1000; }
  // if VideoBitrate is smaller than selected bitrate then use the videoBitrate
  if (videoBitRate < inputs.BitRate) {
    // eslint-disable-next-line no-param-reassign
    inputs.BitRate = videoBitRate;
    // eslint-disable-next-line brace-style
  }
  // if VideoBitrate is larger than selected bitrate then use the selected bitrate
  else {
    // eslint-disable-next-line no-self-assign, no-param-reassign
    inputs.BitRate = inputs.BitRate;
  }

  //Skip Transcoding if File is already AV1
  if (file.ffProbeData.streams[0].codec_name === 'av1') {
    response.processFile = false;
    response.infoLog += 'File is already AV1 \n';
    return response;
  }
  // eslint-disable-next-line no-constant-condition
  if ((true) || file.forceProcessing === true) {
    // eslint-disable-next-line max-len
    response.preset = `--encoder svt_av1 -b ${inputs.BitRate} -r ${inputs.FrameRate} -E ${inputs.AudioType} -f ${inputs.Container} --no-optimize ${dimensions} --crop 0:0:0:0`;
    response.container = `.${inputs.Container}`;
    response.handbrakeMode = true;
    response.ffmpegMode = false;
    response.processFile = true;
    response.infoLog += `File is being transcoded at ${inputs.BitRate} Kbps to ${dimensions} as ${inputs.Container} \n`;
    return response;
  }
  response.infoLog += 'File is being transcoded using custom arguments \n';
  return response;
};
  };

module.exports.details = details;
module.exports.plugin = plugin;


    


    Tried transcoding 4k files down to 1080p but it fails due to that undefined error. All Res 1080p and lower that I have tried work correctly

    


    EDIT : I used Console.log and got this back

    


    [2023-05-24T23:29:51.001] [ERROR] Tdarr_Server - Error running MediaInfo 1&#xA;[2023-05-24T23:29:51.004] [ERROR] Tdarr_Server - RangeError: Maximum call stack size exceeded&#xA;    at x (<anonymous>:wasm-function[381]:0x15c4d)&#xA;    at <anonymous>:wasm-function[46]:0x5dc0&#xA;    at <anonymous>:wasm-function[652]:0x21cb9&#xA;    at <anonymous>:wasm-function[1023]:0x47018&#xA;    at <anonymous>:wasm-function[853]:0x37827&#xA;    at <anonymous>:wasm-function[3684]:0xf4884&#xA;    at <anonymous>:wasm-function[3516]:0xeb5b7&#xA;    at <anonymous>:wasm-function[1061]:0x487c9&#xA;    at <anonymous>:wasm-function[795]:0x3006d&#xA;    at <anonymous>:wasm-function[3628]:0xf01cc&#xA;[2023-05-24T23:29:51.006] [ERROR] Tdarr_Server - Error running MediaInfo 2&#xA;[2023-05-24T23:29:51.006] [ERROR] Tdarr_Server - RangeError: Maximum call stack size exceeded&#xA;    at x (<anonymous>:wasm-function[381]:0x15c4d)&#xA;    at <anonymous>:wasm-function[46]:0x5dc0&#xA;    at <anonymous>:wasm-function[652]:0x21cb9&#xA;    at <anonymous>:wasm-function[1023]:0x47018&#xA;    at <anonymous>:wasm-function[853]:0x37827&#xA;    at <anonymous>:wasm-function[3684]:0xf4884&#xA;    at <anonymous>:wasm-function[3516]:0xeb5b7&#xA;    at <anonymous>:wasm-function[1061]:0x487c9&#xA;    at <anonymous>:wasm-function[795]:0x3006d&#xA;    at <anonymous>:wasm-function[3628]:0xf01cc&#xA;[2023-05-24T23:29:58.220] [ERROR] Tdarr_Server - Error running MediaInfo 1&#xA;[2023-05-24T23:29:58.223] [ERROR] Tdarr_Server - RangeError: Maximum call stack size exceeded&#xA;    at x (<anonymous>:wasm-function[381]:0x15c4d)&#xA;    at <anonymous>:wasm-function[46]:0x5dc0&#xA;    at <anonymous>:wasm-function[652]:0x21cb9&#xA;    at <anonymous>:wasm-function[1023]:0x47018&#xA;    at <anonymous>:wasm-function[853]:0x37827&#xA;    at <anonymous>:wasm-function[3684]:0xf4884&#xA;    at <anonymous>:wasm-function[3516]:0xeb5b7&#xA;    at <anonymous>:wasm-function[1061]:0x487c9&#xA;    at <anonymous>:wasm-function[795]:0x3006d&#xA;    at <anonymous>:wasm-function[3628]:0xf01cc&#xA;[2023-05-24T23:29:58.224] [ERROR] Tdarr_Server - Error running MediaInfo 2&#xA;[2023-05-24T23:29:58.224] [ERROR] Tdarr_Server - RangeError: Maximum call stack size exceeded&#xA;    at x (<anonymous>:wasm-function[381]:0x15c4d)&#xA;    at <anonymous>:wasm-function[46]:0x5dc0&#xA;    at <anonymous>:wasm-function[652]:0x21cb9&#xA;    at <anonymous>:wasm-function[1023]:0x47018&#xA;    at <anonymous>:wasm-function[853]:0x37827&#xA;    at <anonymous>:wasm-function[3684]:0xf4884&#xA;    at <anonymous>:wasm-function[3516]:0xeb5b7&#xA;    at <anonymous>:wasm-function[1061]:0x487c9&#xA;    at <anonymous>:wasm-function[795]:0x3006d&#xA;    at <anonymous>:wasm-function[3628]:0xf01cc&#xA;</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous>

    &#xA;

  • What would be the correct way to use Exec or Transcode ffmpeg in SRS version of Windows 5.0.128

    29 janvier 2023, par diegosn79

    i was doing tests in different ways, and i can't use the Exec or Transcode option, i highlight that I have copied the ffmpeg.exe in the objs folder.&#xA;These are the codes I tried, and I attach the log errors.

    &#xA;

    exec {&#xA;&#xA;enabled on;&#xA;&#xA;publish ./objs/ffmpeg.exe -rtbufsize 10M -i rtmp://10.1.9.240/live/encoder  -vf scale=1080:720 -c:v libx264 -profile:v high -level 4.2 -preset fast -b:v 1500k -c:a aac -ac 2 -b:a 96k -f flv -y rtmp://10.1.9.240:1935/live/encoderlow/;&#xA;&#xA;}&#xA;

    &#xA;

    LOGS

    &#xA;

    [2023-01-04 10:05:46.410][WARN][1309][01568ctu][11] EXEC : Ignore error, code=3028(FFmpegFork)(Failed to fork FFmpeg trancoder process) :&#xA;process start : vfork process failed, cli=./objs/ffmpeg.exe -rtbufsize 10M -i rtmp ://10.1.9.240/live/encoder -vf scale=1080:720 -c:v libx264 -profile:v high -level 4.2 -preset fast -b:v 1500k -c:a aac -ac 2 -b:a 96k -f flv -y rtmp ://10.1.9.240:1935/live/encoderlow/&#xA;thread [1309][01568ctu] : do_cycle() [./src/app/srs_app_ng_exec.cpp:108][errno=11]&#xA;thread [1309][01568ctu] : start() [./src/app/srs_app_process.cpp:197][errno=11]

    &#xA;

    transcode

    &#xA;

        enabled     on;&#xA;&#xA;    ffmpeg      ./objs/ffmpeg.exe;&#xA;&#xA;    engine ff {&#xA;&#xA;        enabled         on;&#xA;&#xA;        vfilter {&#xA;&#xA;        }&#xA;&#xA;        vcodec          libx264;&#xA;&#xA;        vthreads        4;&#xA;&#xA;        vprofile        high;&#xA;&#xA;        vpreset         fast;&#xA;&#xA;        vbitrate        1500k;&#xA;&#xA;        vparams {&#xA;&#xA;        }&#xA;&#xA;        acodec          libfdk_aac;&#xA;&#xA;        aparams {&#xA;&#xA;        }&#xA;&#xA;        output          rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];&#xA;&#xA;    }&#xA;&#xA;}&#xA;

    &#xA;

    LOGS

    &#xA;

    [2023-01-04 11:04:45.295][WARN][1489][34r32764][11] Encoder : Ignore error, code=3028(FFmpegFork)(Failed to fork FFmpeg trancoder process) : ffmpeg start : vfork process failed, cli=./objs/ffmpeg.exe -f flv -i rtmp ://127.0.0.1:1935/live ?vhost=defaultVhost/encoder -vcodec libx264 -b:v 1500000 -threads 4 -profile:v high -preset fast -acodec libfdk_aac -f flv -y rtmp ://127.0.0.1:1935/live/encoder_ff ?vhost=defaultVhost 1 > ./objs/ffmpeg-encoder-defaultVhost-live-encoder-ff.log 2 > ./objs/ffmpeg-encoder-defaultVhost-live-encoder-ff.log&#xA;thread [1489][34r32764] : do_cycle() [./src/app/srs_app_encoder.cpp:117][errno=11]&#xA;thread [1489][34r32764] : start() [./src/app/srs_app_process.cpp:197][errno=11]

    &#xA;

  • MP4 file starts from a non-key frame [closed]

    1er octobre 2023, par userDtrm

    I have used the following ffprobe command to analyse a .mp4 file.

    &#xA;

    &#xA;

    ffprobe -i <input /> -show_frames - select_streams v:0 -print_format flat &amp;> save_to_file.text

    &#xA;

    &#xA;

    It produces the following output.

    &#xA;

    &#xA;&#xA;    ffprobe version 5.1.3 Copyright (c) 2007-2022 the FFmpeg developers&#xA;      built with gcc 13 (GCC)&#xA;      configuration : —prefix=/home/thanuja/ffmpeg_build —pkg-config-flags=—static —extra-cflags=-I/home/thanuja/ffmpeg_build/include —extra-ldflags=-L/home/thanuja/ffmpeg_build/lib —extra-libs=-lpthread —extra-libs=-lm —bindir=/home/thanuja/bin —enable-gpl —enable-libfdk_aac —enable-libfreetype —enable-libmp3lame —enable-libopus —enable-libvpx —enable-libx264 —enable-libx265 —enable-nonfree —enable-openssl —enable-demuxer=spdif —enable-decoder=dolby_e —enable-decoder=ac3 —enable-decoder=eac3 —enable-indev=alsa —enable-outdev=alsa —enable-shared&#xA;      libavutil      57. 28.100 / 57. 28.100&#xA;      libavcodec     59. 37.100 / 59. 37.100&#xA;      libavformat    59. 27.100 / 59. 27.100&#xA;      libavdevice    59.  7.100 / 59.  7.100&#xA;      libavfilter     8. 44.100 /  8. 44.100&#xA;      libswscale      6.  7.100 /  6.  7.100&#xA;      libswresample   4.  7.100 /  4.  7.100&#xA;      libpostproc    56.  6.100 / 56.  6.100&#xA;    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'FTV267StoS.mp4' :&#xA;      Metadata :&#xA;        major_brand : mp42&#xA;        minor_version : 1&#xA;        compatible_brands : isommp41mp42&#xA;        creation_time : 2023-04-02T23:52:12.000000Z&#xA;      Duration : 00:04:47.84, start : 0.000000, bitrate : 7374 kb/s&#xA;      Stream #0:0[0x1](und) : Video : h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/unknown/bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 7198 kb/s, 59.94 fps, 59.94 tbr, 90k tbn (default)&#xA;        Metadata :&#xA;          creation_time : 2023-04-02T23:52:12.000000Z&#xA;          handler_name : Core Media Video&#xA;          vendor_id : [0][0][0][0]&#xA;      Stream #0:1[0x2](eng) : Audio : aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)&#xA;        Metadata :&#xA;          creation_time : 2023-04-02T23:52:12.000000Z&#xA;          handler_name : Core Media Audio&#xA;          vendor_id : [0][0][0][0]&#xA;    frames.frame.0.media_type="video"&#xA;    frames.frame.0.stream_index=0&#xA;    frames.frame.0.key_frame=0&#xA;    frames.frame.0.pts=34536&#xA;    frames.frame.0.pts_time="0.383733"&#xA;    frames.frame.0.pkt_dts=34536&#xA;    frames.frame.0.pkt_dts_time="0.383733"&#xA;    frames.frame.0.best_effort_timestamp=34536&#xA;    frames.frame.0.best_effort_timestamp_time="0.383733"&#xA;    frames.frame.0.pkt_duration=1501&#xA;    frames.frame.0.pkt_duration_time="0.016678"&#xA;    frames.frame.0.pkt_pos="1834827"&#xA;    frames.frame.0.pkt_size="14917"&#xA;    frames.frame.0.width=1920&#xA;    frames.frame.0.height=1080&#xA;    frames.frame.0.pix_fmt="yuv420p"&#xA;    frames.frame.0.sample_aspect_ratio="1:1"&#xA;    frames.frame.0.pict_type="P"&#xA;    frames.frame.0.coded_picture_number=120&#xA;    frames.frame.0.display_picture_number=0&#xA;    frames.frame.0.interlaced_frame=0&#xA;    frames.frame.0.top_field_first=0&#xA;    frames.frame.0.repeat_pict=0&#xA;    frames.frame.0.color_range="tv"&#xA;    frames.frame.0.color_space="bt709"&#xA;    frames.frame.0.color_primaries="unknown"&#xA;    frames.frame.0.color_transfer="bt709"&#xA;    frames.frame.0.chroma_location="left"&#xA;    frames.frame.0.tags.timecode="20:18:26:50"&#xA;    frames.frame.0.side_data_list.side_data.0.side_data_type="H.26[45] User Data Unregistered SEI message"&#xA;    frames.frame.0.side_data_list.side_data.1.side_data_type="H.26[45] User Data Unregistered SEI message"&#xA;    frames.frame.0.side_data_list.side_data.2.side_data_type="SMPTE 12-1 timecode"&#xA;    frames.frame.0.side_data_list.side_data.2.timecodes.timecode.0.value="20:18:26:50"&#xA;    frames.frame.1.media_type="video"&#xA;    frames.frame.1.stream_index=0&#xA;    frames.frame.1.key_frame=0&#xA;    frames.frame.1.pts=36036&#xA;    frames.frame.1.pts_time="0.400400"&#xA;    frames.frame.1.pkt_dts=36036&#xA;    frames.frame.1.pkt_dts_time="0.400400"&#xA;    frames.frame.1.best_effort_timestamp=36036&#xA;    frames.frame.1.best_effort_timestamp_time="0.400400"&#xA;    frames.frame.1.pkt_duration=1501&#xA;    frames.frame.1.pkt_duration_time="0.016678"&#xA;    frames.frame.1.pkt_pos="1857434"&#xA;    frames.frame.1.pkt_size="14472"&#xA;    frames.frame.1.width=1920&#xA;    frames.frame.1.height=1080&#xA;    frames.frame.1.pix_fmt="yuv420p"&#xA;    frames.frame.1.sample_aspect_ratio="1:1"&#xA;    frames.frame.1.pict_type="P"&#xA;&#xA;

    &#xA;

    As seen in this output, the 1st frame appears to be a P frame. I'm curious as to how will the decoder decode this frame without a preceding I frame (key frame) ? The P frame will not have enough information to reconstruct the image from its residual data without the key frame.

    &#xA;