Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (45)

  • 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

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (5715)

  • Live stream doesn't seem to be passed to AWS correctly

    12 août 2024, par NoobAmI

    I'm trying to stream my live video into Amazon IVS and I don't see it on the live channels.

    


    Is it possible I have a mistake in my FFMPEG configuration ?
I'm expecting to see this in my playback url or on the console screen for playback but I see nothing at the moment.

    


    As I understand it, shouldn't I see some kind of playback in the live channels if a stream is being sent that channel ?

    


    `  async sendDataToIvs(channelArn: string, payload: any): Promise<void> {&#xA;    const injestServer = &#x27;***.global-contribute.live-video.net&#x27;;&#xA;    const streamKey = &#x27;sk_us-east-1_*****&#x27;;&#xA;  &#xA;    const ffmpeg = spawn(&#x27;ffmpeg&#x27;, [&#xA;      &#x27;-re&#x27;, // Read input at native frame rate&#xA;      &#x27;-i&#x27;, &#x27;-&#x27;, // Input from stdin (live stream data)&#xA;      &#x27;-r&#x27;, &#x27;30&#x27;, // Frame rate&#xA;      &#x27;-c:v&#x27;, &#x27;libx264&#x27;, // Video codec - H.264&#xA;      &#x27;-pix_fmt&#x27;, &#x27;yuv420p&#x27;, // Pixel format&#xA;      &#x27;-profile:v&#x27;, &#x27;main&#x27;, // H.264 profile&#xA;      &#x27;-preset&#x27;, &#x27;veryfast&#x27;, // Encoder quality setting&#xA;      &#x27;-x264opts&#x27;, &#x27;nal-hrd=cbr:no-scenecut&#x27;, // Additional x264 options&#xA;      &#x27;-minrate&#x27;, &#x27;3000&#x27;, // Minimum bitrate&#xA;      &#x27;-maxrate&#x27;, &#x27;3000&#x27;, // Maximum bitrate&#xA;      &#x27;-g&#x27;, &#x27;60&#x27;, // GOP size&#xA;      &#x27;-c:a&#x27;, &#x27;aac&#x27;, // Audio codec&#xA;      &#x27;-b:a&#x27;, &#x27;160k&#x27;, // Audio bitrate&#xA;      &#x27;-ac&#x27;, &#x27;2&#x27;, // Audio channels&#xA;      &#x27;-ar&#x27;, &#x27;44100&#x27;, // Audio sample rate&#xA;      &#x27;-f&#x27;, &#x27;flv&#x27;, // Output format&#xA;      `rtmps://${injestServer}:443/app/${streamKey}` // Output destination&#xA;    ]);&#xA;  &#xA;    ffmpeg.stdin.write(payload, (err) => {&#xA;      console.log(payload)&#xA;      if (err) console.error(&#x27;Error writing payload to FFmpeg stdin:&#x27;, err);&#xA;    });&#xA;  &#xA;    ffmpeg.on(&#x27;close&#x27;, (code) => {&#xA;      console.log(`FFmpeg process exited with code ${code}`);&#xA;    });&#xA;  &#xA;    ffmpeg.stdin.on(&#x27;error&#x27;, (err) => {&#xA;      console.error(&#x27;Error writing to FFmpeg stdin:&#x27;, err);&#xA;    });&#xA;  &#xA;    ffmpeg.stderr.on(&#x27;data&#x27;, (data) => {&#xA;      console.error(`FFmpeg error: ${data}`);&#xA;    });&#xA;  } `&#xA;</void>

    &#xA;

  • Running ffmpeg in Docker environment on AWS EC2 [duplicate]

    5 mai 2024, par must

    I want to use FFMPEG inside my Java application.&#xA;I want to instal ffmpeg in environment where this app is running.

    &#xA;

    My current Dockerfile :

    &#xA;

    # Stage 1: Build the application&#xA;FROM maven:3.8.4-openjdk-17 AS build&#xA;WORKDIR /app&#xA;COPY pom.xml .&#xA;COPY src ./src&#xA;RUN mvn clean install -Dmaven.test.skip=true&#xA;&#xA;# Stage 2: Run the application&#xA;FROM openjdk:17&#xA;WORKDIR /app&#xA;COPY --from=build /app/target/application.jar ./app.jar&#xA;EXPOSE 8080&#xA;CMD ["java", "-jar", "-Dspring.profiles.active=pr", "app.jar"]&#xA;

    &#xA;

    I simply built a docker image by running docker buildx build --platform linux/amd64 -t repo/app:1.0 .

    &#xA;

    Then in AWS Console I run docker run and pull built image.

    &#xA;

    Everyone writes about adding

    &#xA;

    RUN apt-get -y update &amp;&amp; apt-get -y upgrade &amp;&amp; apt-get install -y --no-install-recommends ffmpeg&#xA;

    &#xA;

    but I cannot do it as I'm building image on MacOS and I do no have apt-get command.

    &#xA;

    When I was trying to pull some image form DockerHub FFMPEG could not be found.

    &#xA;

    I tried this one : https://hub.docker.com/r/jrottenberg/ffmpeg

    &#xA;

    and declared DockerFile as :

    &#xA;

    # Stage 1: Build the application&#xA;FROM maven:3.8.4-openjdk-17 AS build&#xA;WORKDIR /app&#xA;COPY pom.xml .&#xA;COPY src ./src&#xA;RUN mvn clean install -Dmaven.test.skip=true&#xA;&#xA;# Stage 2: Install ffmpeg&#xA;FROM jrottenberg/ffmpeg:latest AS ffmpeg&#xA;&#xA;# Stage 3: Run the application&#xA;FROM openjdk:17&#xA;WORKDIR /app&#xA;COPY --from=build /app/target/application.jar ./app.jar&#xA;COPY --from=ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg&#xA;&#xA;EXPOSE 8080&#xA;CMD ["java", "-jar", "-Dspring.profiles.active=pr", "app.jar"]&#xA;

    &#xA;

    but still it did not work. I get :

    &#xA;

    ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory&#xA;

    &#xA;

    I'm using Amazon Linux on EC2.

    &#xA;

    Can someone get me on the right track ?

    &#xA;

  • Why does fluent-ffmpeg only work when it throws the error Output stream closed

    29 mars 2024, par volume one

    I am using fluent-ffmpeg to process a video file (and then upload that to Amazon S3). The code is very straightforward but it only works if :

    &#xA;

      &#xA;
    • pipe option {end: true} is set in .output()
    • &#xA;

    • which has a side-effect that causes the following console log output
    • &#xA;

    &#xA;

    &#xA;

    Processing : 19.261847354642416% done Processing :&#xA;32.365144874807335% done Processing : 48.80978326261429% done Processing : 78.35771917058617%&#xA;Processing : 91.49377493455148% done Processing :&#xA;99.91264359125745% done An error occurred : Output stream closed

    &#xA;

    &#xA;

    Despite that error, it seems the file is generated correctly and it gets uploaded to Amazon S3 fine.

    &#xA;

    This is the fluent-ffmpeg code :

    &#xA;

    import {PassThrough} from &#x27;node:stream&#x27;;&#xA;import FFMpeg from &#x27;fluent-ffmpeg&#x27;;&#xA;&#xA;let PassThroughStream = new PassThrough();&#xA;&#xA;             FFMpeg(&#x27;/testvideo.mp4&#x27;)&#xA;                    .videoCodec(&#x27;libx264&#x27;)&#xA;                    .audioCodec(&#x27;libmp3lame&#x27;)&#xA;                    .size(`640x480`)&#xA;                    // Stream output requires manually specifying output formats&#xA;                    .format(&#x27;mp4&#x27;)&#xA;                    .outputOptions(&#x27;-movflags dash&#x27;)&#xA;                    .on(&#x27;progress&#x27;, function (progress) {&#xA;                        console.log(&#x27;Processing: &#x27; &#x2B; progress.percent &#x2B; &#x27;% done&#x27;);&#xA;                    })&#xA;                    .on(&#x27;error&#x27;, function (err) {&#xA;                        console.log(&#x27;An error occurred: &#x27; &#x2B; err.message);&#xA;                    })&#xA;                    .on(&#x27;end&#x27;, function () {&#xA;                        console.log(&#x27;FFMpeg Processing finished!&#x27;);&#xA;                    })&#xA;                    .output(PassThroughStream, {end: true})&#xA;                    .run();&#xA;&#xA;   // Now upload to S3&#xA;    try {&#xA;          await s3Upload({&#xA;              AWSS3Client: &#x27;mys3client&#x27;,&#xA;              Bucket: &#x27;publicbucket,&#xA;              ACL: "public-read",&#xA;              ContentType: &#x27;video/mp4&#x27;,&#xA;              Key: &#x27;whoever/whatever.mp4&#x27;,&#xA;              Body: PassThroughStream&#xA;           });&#xA;    } catch (error) {&#xA;                    console.log(`s3Upload error`, error)&#xA;                }&#xA;

    &#xA;

    If I set the pipe output() option to {end: false} then there is no error from fluent-ffmpeg and I get "Processing: 100% done FFMpeg Processing finished!" as the final console log.

    &#xA;

    BUT the problem is that the s3Upload() does not do anything. There are no errors. Just no activity.

    &#xA;

    I feel very uncomfortable letting fluent-ffmpeg end in an error even if the code itself does the job intended. It will also cause testing to fail. What could be the issue ?

    &#xA;

    The command line code is : ffmpeg -i https:/xxxbucket.s3.amazonaws.com/14555/file-example.mp4 -acodec libmp3lame -vcodec libx264 -filter:v scale=w=trunc(oh*a/2)*2:h=480 -f mp4 -movflags dash pipe:1

    &#xA;