Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (50)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

  • Utilisation et configuration du script

    19 janvier 2011, par

    Informations spécifiques à la distribution Debian
    Si vous utilisez cette distribution, vous devrez activer les dépôts "debian-multimedia" comme expliqué ici :
    Depuis la version 0.3.1 du script, le dépôt peut être automatiquement activé à la suite d’une question.
    Récupération du script
    Le script d’installation peut être récupéré de deux manières différentes.
    Via svn en utilisant la commande pour récupérer le code source à jour :
    svn co (...)

Sur d’autres sites (6486)

  • getting a `InValid URL` when I send a voice message

    9 septembre 2023, par Ammad

    When I try to send voice messages I always get invalid url error with. I am using whisper to convert the audio to text but for some reason I cannot seem to pass the file to the whisper. It worked when I used this in java script but not in typescript for some reason

    


    async function createFile(path: string): Promise<file> {&#xA;  const response = await fetch(path);&#xA;  const data = await response.blob();&#xA;  &#xA;  // Extract file name from the path&#xA;  const fileName = path.split(&#x27;/&#x27;).pop() || &#x27;unknown&#x27;;&#xA;  &#xA;  // Extract file extension and determine MIME type&#xA;  const fileExtension = fileName.split(&#x27;.&#x27;).pop()?.toLowerCase() || &#x27;&#x27;;&#xA;  const mimeTypes: Record = {&#xA;    &#x27;mp3&#x27;: &#x27;audio/mpeg&#x27;,&#xA;    // Add more mappings as needed&#xA;  };&#xA;  const fileType = mimeTypes[fileExtension] || &#x27;application/octet-stream&#x27;;&#xA;  &#xA;  const metadata = {&#xA;    type: fileType&#xA;  };&#xA;  &#xA;  return new File([data], fileName, metadata);&#xA;}&#xA;&#xA;async function sendAudioForTranscription(file_path:string) {&#xA;  try {&#xA;    &#xA;    // const audioData = fs.createReadStream(file_path);&#xA;    const audioFile = await createFile(file_path)&#xA;&#xA;    const response = await openai.createTranscription(audioFile, "whisper-1");&#xA;    const transcribed = response.data.text;&#xA;&#xA;    return transcribed;&#xA;  } catch (error) {&#xA;    console.error("Error transcribing the audio:", error);&#xA;    return null;&#xA;  }&#xA;}&#xA;</file>

    &#xA;

    I am new to this so any help would be appreciated. This is the error

    &#xA;

    Error transcribing the audio: TypeError: Failed to parse URL from src\audio_files\false_xxxxxxxxx8@c.us_B161BC6FA04DB01B8B31F5E0F83EDAD5.mp3&#xA;    at Object.fetch (node:internal/deps/undici/undici:11576:11)&#xA;    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {&#xA;  [cause]: TypeError [ERR_INVALID_URL]: Invalid URL&#xA;      at new NodeError (node:internal/errors:405:5)&#xA;      at new URL (node:internal/url:778:13)&#xA;      at new Request (node:internal/deps/undici/undici:7132:25)&#xA;      at fetch2 (node:internal/deps/undici/undici:10715:25)&#xA;      at Object.fetch (node:internal/deps/undici/undici:11574:18)&#xA;      at fetch (node:internal/process/pre_execution:270:25)&#xA;      at C:\Users\Ammad Ali\Documents\Documents\alex-whatsapp-bot\build\openai\transcript.js:28:32&#xA;      at C:\Users\Ammad Ali\Documents\Documents\alex-whatsapp-bot\build\openai\transcript.js:8:71&#xA;      at new Promise (<anonymous>)&#xA;      at __awaiter (C:\Users\Ammad Ali\Documents\Documents\alex-whatsapp-bot\build\openai\transcript.js:4:12)&#xA;      at createFile (C:\Users\Ammad Ali\Documents\Documents\alex-whatsapp-bot\build\openai\transcript.js:27:12)&#xA;      at Object.<anonymous> (C:\Users\Ammad Ali\Documents\Documents\alex-whatsapp-bot\build\openai\transcript.js:49:37)&#xA;      at Generator.next (<anonymous>)&#xA;      at C:\Users\Ammad Ali\Documents\Documents\alex-whatsapp-bot\build\openai\transcript.js:8:71&#xA;      at new Promise (<anonymous>) {&#xA;    input: &#x27;src\\audio_files\\false_xxxxxxxxx8@c.us_B161BC6FA04DB01B8B31F5E0F83EDAD5.mp3&#x27;,&#xA;    code: &#x27;ERR_INVALID_URL&#x27;&#xA;  }&#xA;}&#xA;</anonymous></anonymous></anonymous></anonymous>

    &#xA;

    To get a response back in voice message

    &#xA;

  • How do you use FFMPEG to transcode h264_qsv from Apple PRORES Quicktime ?

    4 décembre 2022, par RCJetPilot

    I am trying to transcode an Apple Prores 444 to H.264 using qsv without success.

    &#xA;

    If I use this command line :

    &#xA;

    ffmpeg -i 10minute_Pipeline_Test.mov -c:v h264_qsv -c:a aac -pix_fmt qsv  chris.mp4

    &#xA;

    I get :

    &#xA;

    ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)&#xA;  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-nonfree --enable-libmfx&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;Guessed Channel Layout for Input Stream #0.2 : mono&#xA;Guessed Channel Layout for Input Stream #0.3 : mono&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;10minute_Pipeline_Test.mov&#x27;:&#xA;  Metadata:&#xA;    major_brand     : qt  &#xA;    minor_version   : 537134592&#xA;    compatible_brands: qt  &#xA;    creation_time   : 2020-12-19T12:43:38.000000Z&#xA;    com.apple.quicktime.author: &#xA;    com.apple.quicktime.comment: &#xA;    com.apple.quicktime.copyright: &#xA;    com.apple.quicktime.description: &#xA;    com.apple.quicktime.director: &#xA;    com.apple.quicktime.genre: &#xA;    com.apple.quicktime.information: &#xA;    com.apple.quicktime.keywords: &#xA;    com.apple.quicktime.producer: &#xA;    com.apple.quicktime.displayname: &#xA;    timecode        : 12:43:37;28&#xA;  Duration: 00:10:06.72, start: 0.000000, bitrate: 167429 kb/s&#xA;    Stream #0:0(eng): Data: none (tmcd / 0x64636D74)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-04T00:49:14.000000Z&#xA;      timecode        : 12:43:37;28&#xA;    Stream #0:1(eng): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(tv, GBR, progressive), 1280x720, 164985 kb/s, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 60k tbn, 60k tbc (default)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-01T00:00:04.000000Z&#xA;    Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2003-10-05T11:26:56.000000Z&#xA;File &#x27;chris.mp4&#x27; already exists. Overwrite ? [y/N] y&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (prores (native) -> h264 (h264_qsv))&#xA;  Stream #0:2 -> #0:1 (pcm_s24le (native) -> aac (native))&#xA;Press [q] to stop, [?] for help&#xA;[h264_qsv @ 0x56265b81a800] Selected ratecontrol mode is unsupported&#xA;[h264_qsv @ 0x56265b81a800] Low power mode is unsupported&#xA;[h264_qsv @ 0x56265b81a800] Current frame rate is unsupported&#xA;[h264_qsv @ 0x56265b81a800] Current picture structure is unsupported&#xA;[h264_qsv @ 0x56265b81a800] Current resolution is unsupported&#xA;[h264_qsv @ 0x56265b81a800] Current pixel format is unsupported&#xA;[h264_qsv @ 0x56265b81a800] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.&#xA;Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height&#xA;Conversion failed!&#xA;user@NUC:~$ ffmpeg -i 10minute_Pipeline_Test.mov -c:v h264_qsv -c:a aac -pix_fmt qsv  chris.mp4&#xA;ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)&#xA;  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-nonfree --enable-libmfx&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;Guessed Channel Layout for Input Stream #0.2 : mono&#xA;Guessed Channel Layout for Input Stream #0.3 : mono&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;10minute_Pipeline_Test.mov&#x27;:&#xA;  Metadata:&#xA;    major_brand     : qt  &#xA;    minor_version   : 537134592&#xA;    compatible_brands: qt  &#xA;    creation_time   : 2020-12-19T12:43:38.000000Z&#xA;    com.apple.quicktime.author: &#xA;    com.apple.quicktime.comment: &#xA;    com.apple.quicktime.copyright: &#xA;    com.apple.quicktime.description: &#xA;    com.apple.quicktime.director: &#xA;    com.apple.quicktime.genre: &#xA;    com.apple.quicktime.information: &#xA;    com.apple.quicktime.keywords: &#xA;    com.apple.quicktime.producer: &#xA;    com.apple.quicktime.displayname: &#xA;    timecode        : 12:43:37;28&#xA;  Duration: 00:10:06.72, start: 0.000000, bitrate: 167429 kb/s&#xA;    Stream #0:0(eng): Data: none (tmcd / 0x64636D74)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-04T00:49:14.000000Z&#xA;      timecode        : 12:43:37;28&#xA;    Stream #0:1(eng): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(tv, GBR, progressive), 1280x720, 164985 kb/s, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 60k tbn, 60k tbc (default)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-01T00:00:04.000000Z&#xA;    Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2003-10-05T11:26:56.000000Z&#xA;File &#x27;chris.mp4&#x27; already exists. Overwrite ? [y/N] y&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (prores (native) -> h264 (h264_qsv))&#xA;  Stream #0:2 -> #0:1 (pcm_s24le (native) -> aac (native))&#xA;Press [q] to stop, [?] for help&#xA;Impossible to convert between the formats supported by the filter &#x27;Parsed_null_0&#x27; and the filter &#x27;auto_scaler_0&#x27;&#xA;Error reinitializing filters!&#xA;Failed to inject frame into filter network: Function not implemented&#xA;Error while processing the decoded data for stream #0:1&#xA;Conversion failed!&#xA;

    &#xA;

    If I use :

    &#xA;

    ffmpeg -i 10minute_Pipeline_Test.mov -c:v h264_qsv -c:a aac  chris.mp4

    &#xA;

    I get :

    &#xA;

    ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)&#xA;  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-nonfree --enable-libmfx&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;Guessed Channel Layout for Input Stream #0.2 : mono&#xA;Guessed Channel Layout for Input Stream #0.3 : mono&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;10minute_Pipeline_Test.mov&#x27;:&#xA;  Metadata:&#xA;    major_brand     : qt  &#xA;    minor_version   : 537134592&#xA;    compatible_brands: qt  &#xA;    creation_time   : 2020-12-19T12:43:38.000000Z&#xA;    com.apple.quicktime.author: &#xA;    com.apple.quicktime.comment: &#xA;    com.apple.quicktime.copyright: &#xA;    com.apple.quicktime.description: &#xA;    com.apple.quicktime.director: &#xA;    com.apple.quicktime.genre: &#xA;    com.apple.quicktime.information: &#xA;    com.apple.quicktime.keywords: &#xA;    com.apple.quicktime.producer: &#xA;    com.apple.quicktime.displayname: &#xA;    timecode        : 12:43:37;28&#xA;  Duration: 00:10:06.72, start: 0.000000, bitrate: 167429 kb/s&#xA;    Stream #0:0(eng): Data: none (tmcd / 0x64636D74)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-04T00:49:14.000000Z&#xA;      timecode        : 12:43:37;28&#xA;    Stream #0:1(eng): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(tv, GBR, progressive), 1280x720, 164985 kb/s, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 60k tbn, 60k tbc (default)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-01T00:00:04.000000Z&#xA;    Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2003-10-05T11:26:56.000000Z&#xA;File &#x27;chris.mp4&#x27; already exists. Overwrite ? [y/N] y&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (prores (native) -> h264 (h264_qsv))&#xA;  Stream #0:2 -> #0:1 (pcm_s24le (native) -> aac (native))&#xA;Press [q] to stop, [?] for help&#xA;Impossible to convert between the formats supported by the filter &#x27;Parsed_null_0&#x27; and the filter &#x27;auto_scaler_0&#x27;&#xA;Error reinitializing filters!&#xA;Failed to inject frame into filter network: Function not implemented&#xA;Error while processing the decoded data for stream #0:1&#xA;Conversion failed!&#xA;user@NUC:~$ ffmpeg -i 10minute_Pipeline_Test.mov -c:v h264_qsv -c:a aac  chris.mp4&#xA;ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)&#xA;  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-nonfree --enable-libmfx&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;Guessed Channel Layout for Input Stream #0.2 : mono&#xA;Guessed Channel Layout for Input Stream #0.3 : mono&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;10minute_Pipeline_Test.mov&#x27;:&#xA;  Metadata:&#xA;    major_brand     : qt  &#xA;    minor_version   : 537134592&#xA;    compatible_brands: qt  &#xA;    creation_time   : 2020-12-19T12:43:38.000000Z&#xA;    com.apple.quicktime.author: &#xA;    com.apple.quicktime.comment: &#xA;    com.apple.quicktime.copyright: &#xA;    com.apple.quicktime.description: &#xA;    com.apple.quicktime.director: &#xA;    com.apple.quicktime.genre: &#xA;    com.apple.quicktime.information: &#xA;    com.apple.quicktime.keywords: &#xA;    com.apple.quicktime.producer: &#xA;    com.apple.quicktime.displayname: &#xA;    timecode        : 12:43:37;28&#xA;  Duration: 00:10:06.72, start: 0.000000, bitrate: 167429 kb/s&#xA;    Stream #0:0(eng): Data: none (tmcd / 0x64636D74)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-04T00:49:14.000000Z&#xA;      timecode        : 12:43:37;28&#xA;    Stream #0:1(eng): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(tv, GBR, progressive), 1280x720, 164985 kb/s, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 60k tbn, 60k tbc (default)&#xA;    Metadata:&#xA;      creation_time   : 1970-01-01T00:00:04.000000Z&#xA;    Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32 (24 bit), 1152 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2003-10-05T11:26:56.000000Z&#xA;File &#x27;chris.mp4&#x27; already exists. Overwrite ? [y/N] y&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (prores (native) -> h264 (h264_qsv))&#xA;  Stream #0:2 -> #0:1 (pcm_s24le (native) -> aac (native))&#xA;Press [q] to stop, [?] for help&#xA;[h264_qsv @ 0x55b3bb6e8800] Selected ratecontrol mode is unsupported&#xA;[h264_qsv @ 0x55b3bb6e8800] Low power mode is unsupported&#xA;[h264_qsv @ 0x55b3bb6e8800] Current frame rate is unsupported&#xA;[h264_qsv @ 0x55b3bb6e8800] Current picture structure is unsupported&#xA;[h264_qsv @ 0x55b3bb6e8800] Current resolution is unsupported&#xA;[h264_qsv @ 0x55b3bb6e8800] Current pixel format is unsupported&#xA;[h264_qsv @ 0x55b3bb6e8800] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.&#xA;Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height&#xA;Conversion failed!&#xA;

    &#xA;

    I cannot get ANYTHING to work. I can transcode other h264 files without issue. I cannot seem to transcode this prores file.

    &#xA;

    Here is a link to the source file if anyone can help I would REALLY appreciate it...

    &#xA;

    https://www.dropbox.com/s/ejrfzad20yzaifm/10minute_Pipeline_Test.mov?dl=1

    &#xA;

  • A random pixel on a keyframe. (ffmpeg)

    5 juin 2013, par Chris Russo

    Hello folks of SO !

    We're trying to do some very small and simple code in PHP to generate a variation of a video, using always the same file.

    The script would have to make a small pixel mark, on random or specific frame of the video file, and this would have to be streamed in real time.

    Here's some pseudo code to explain my idea :

    $frame = $_GET[frame];
    $videofile = &#39;video.avi&#39;;

    make_random_red_pixel_mark($videofile, $frame);

    Does anyone know if this is possible using ffmpeg ? As well, it is of extreamly importance for us, to execute this procedure as fast as possible.

    A solution that would imply reprocessing the whole video, won't be useful for our purposes. It should be something like a closed caption, or a quick image / overlay filter that could be applied without an entire video reprocessing. As well, we can't put the overlay using Javascript nor any HTML approach, since the actual manipulation has to be on the video file itself.

    The quality, and framerate of the original video, should be kept intact. Perhaps some other PHP module or software that could be execute from PHP using an exec() ?

    Any recommendation ?

    Thanks in advance !!
    Chris C. Russo

    More information :

    1) It's possible for us to apply this procedure on any frame we want to, so we could use a "keyframe" in order to avoid the decoding and reencoding of an entire GOP.

    2) As previously stated, the video stream would have to flow in real time.