Recherche avancée

Médias (0)

Mot : - Tags -/configuration

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (26)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

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

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

Sur d’autres sites (6451)

  • Process vide files to take screen grabs in java spring boot

    10 octobre 2023, par Haleema Khan

    I am using JavaCV library with ffmpeg bindings to process video files and taking screen grabs at specific frames.
Adding JavaCV library dependency to my spring project increases the size of my jar file from around 90Mb > 1+ Gb.
This is a big issue becuase my project is deployed on AWS elastic beanstalk that accepts a max size of 500 Mb for a jar file.

    


    Need help to resolve this issue with the jar file or else any other alternate library that could do this.

    


    What I tried : I have removed all accept the abosultely necessary dependencies in my project to reduce the jar size.
I have also tried to find alternate solutions but couldnt get anything.
My pom file looks like

    


    <dependencies>&#xA;        &#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-starter-data-jpa</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>com.google.oauth-client</groupid>&#xA;            <artifactid>google-oauth-client</artifactid>&#xA;            <version>1.32.1</version>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>com.google.http-client</groupid>&#xA;            <artifactid>google-http-client</artifactid>&#xA;            <version>1.32.1</version>&#xA;        </dependency>&#xA;        &#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-starter-oauth2-client</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-starter-web</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-starter-test</artifactid>&#xA;            <scope>test</scope>&#xA;        </dependency>&#xA;        &#xA;        <dependency>&#xA;            <groupid>org.bytedeco</groupid>&#xA;            <artifactid>javacv</artifactid>&#xA;            <version>1.5.9</version>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-starter-validation</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.apache.commons</groupid>&#xA;            <artifactid>commons-csv</artifactid>&#xA;            <version>1.10.0</version>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>io.jsonwebtoken</groupid>&#xA;            <artifactid>jjwt</artifactid>&#xA;            <version>0.9.1</version>&#xA;        </dependency>&#xA;        &#xA;        <dependency>&#xA;            <groupid>mysql</groupid>&#xA;            <artifactid>mysql-connector-java</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-devtools</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.projectlombok</groupid>&#xA;            <artifactid>lombok</artifactid>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.boot</groupid>&#xA;            <artifactid>spring-boot-configuration-processor</artifactid>&#xA;            <optional>true</optional>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>com.amazonaws</groupid>&#xA;            <artifactid>aws-java-sdk-s3</artifactid>&#xA;            <version>1.12.550</version>&#xA;        </dependency>&#xA;        &#xA;        <dependency>&#xA;            <groupid>commons-io</groupid>&#xA;            <artifactid>commons-io</artifactid>&#xA;            <version>2.6</version>&#xA;        </dependency>&#xA;        &#xA;        &#xA;        &#xA;        <dependency>&#xA;            <groupid>com.github.ozlerhakan</groupid>&#xA;            <artifactid>poiji</artifactid>&#xA;            <version>3.0.3</version>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.cloud</groupid>&#xA;            <artifactid>spring-cloud-starter-aws</artifactid>&#xA;            <version>2.2.6.RELEASE</version>&#xA;        </dependency>&#xA;        <dependency>&#xA;            <groupid>org.springframework.cloud</groupid>&#xA;            <artifactid>spring-cloud-starter-aws-messaging</artifactid>&#xA;            <version>2.2.6.RELEASE</version>&#xA;        </dependency>&#xA;    </dependencies>```&#xA;

    &#xA;

  • Where to (long time) host Spring Boot Application with Data Base Backup and Linux Root Access [closed]

    22 mai 2024, par Lord Helmchen

    I developed a small application for my father. It uses Spring Boot, MySQL and FFMPEG, which I currently installed on Linux.

    &#xA;

    I want to host it, deploy it automatically, have a back up and root access for FFMPEG installation.

    &#xA;

    It runs smoothly locally on Windows / Linux, now I want to host it somewhere.

    &#xA;

    What I would like to have :

    &#xA;

      &#xA;
    • Ease of deployment : I got experience in adminstration of linux root servers, but I look for something easy to integrate and maybe automatically deploy it from Github or Gitlab
    • &#xA;

    • Backup : I want to backup the database ideally to another service provider in case something goes wrong.
    • &#xA;

    • Linux : One Part of it, amongs others is to convert different audio formats using ffmpeg.&#xA;So, (I think) I need linux root access as well.
    • &#xA;

    • Time Horzion : I would like to make sure it still runs in ten+ years, so it should be a reliable provider where I only update the application from time to time if needed.
    • &#xA;

    • Money : As it is only for personal use at this moment, I don't want to invest a fortune.
    • &#xA;

    &#xA;

    What provider and deployment pipeline would you recommend to me ?

    &#xA;

  • why am i getting this error when using FFmpeg in a spring boot app on a mac intel device : SIGSEGV (0xb) at pc=0x000000013d71b0e0, pid=49777, tid=42755

    19 juillet 2024, par Godwill Christopher

    I am working with FFmpeg library in spring boot app to stream live recording from an ip camera via RSTP and save to S3 bucket but i am running into the error below.

    &#xA;

    A fatal error has been detected by the Java Runtime Environment :

    &#xA;

    SIGSEGV (0xb) at pc=0x000000013d71b0e0, pid=49777, tid=42755

    &#xA;

    JRE version : OpenJDK Runtime Environment Corretto-19.0.2.7.1 (19.0.2+7) (build 19.0.2+7-FR)&#xA;Java VM : OpenJDK 64-Bit Server VM Corretto-19.0.2.7.1 (19.0.2+7-FR, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)&#xA;Problematic frame :&#xA;C [libavutil.56.dylib+0xa0e0] av_strstart+0x10

    &#xA;

    No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again&#xA;An error report file with more information is saved as :&#xA;/Users/CODA/Desktop/videoSaleService/hs_err_pid49777.log

    &#xA;

    If you would like to submit a bug report, please visit :&#xA;https://github.com/corretto/corretto-19/issues/&#xA;The crash happened outside the Java Virtual Machine in native code.&#xA;See problematic frame for where to report the bug.

    &#xA;

    Process finished with exit code 134 (interrupted by signal 6:SIGABRT)

    &#xA;

    public static void main(String[] args) {&#xA;    OkHttpClient client = new OkHttpClient();&#xA;    try (S3Client s3Client = S3Client.create()) {&#xA;        VideoService videoService = new VideoService(new VideoRepositoryImpl(),&#xA;                new S3Service(s3Client), new VideoExtractor(client), new ISApiClient());&#xA;        videoService.streamLiveVideoRSTP(System.out);&#xA;    } catch (IOException e) {&#xA;        log.error("Error occurred while streaming live video: {}", e.getMessage(), e);&#xA;    } catch (Exception e) {&#xA;        log.error("Unexpected error occurred: {}", e.getMessage(), e);&#xA;    }&#xA;}&#xA;&#xA;public void streamLiveVideoRSTP(OutputStream outputStream) throws IOException {&#xA;    File tempFile = File.createTempFile("live_stream", ".mp4");&#xA;&#xA;    try (InputStream inputStream = client.getLiveStreamingVideoRSTP();&#xA;         OutputStream fileOutputStream = new FileOutputStream(tempFile)) {&#xA;        byte[] buffer = new byte[4096];&#xA;        int bytesRead;&#xA;        while ((bytesRead = inputStream.read(buffer)) != -1) {&#xA;            outputStream.write(buffer, 0, bytesRead);&#xA;            fileOutputStream.write(buffer, 0, bytesRead);&#xA;        }&#xA;    } catch (Exception e) {&#xA;        log.error("Error occurred while streaming live video: {}", e.getMessage(), e);&#xA;        throw new IOException("Error occurred while streaming live video", e);&#xA;    }&#xA;&#xA;    // Upload the captured video file to S3&#xA;    try {&#xA;        uploadStreamedVideoToS3(tempFile);&#xA;    } finally {&#xA;        if (tempFile.exists()) {&#xA;            if (!tempFile.delete()) {&#xA;                log.warn("Failed to delete temporary file: {}", tempFile.getAbsolutePath());&#xA;            }&#xA;        }&#xA;    }&#xA;}&#xA;&#xA;private final BlockingQueue frameQueue = new ArrayBlockingQueue&lt;>(10);&#xA;&#xA;public ISApiClient() {&#xA;    new Thread(this::startGrabbingFrames).start();&#xA;}&#xA;&#xA;public InputStream getLiveStreamingVideoRSTP() {&#xA;    return new InputStream() {&#xA;        private ByteArrayInputStream currentStream;&#xA;&#xA;        @Override&#xA;        public int read() {&#xA;            if (currentStream == null || currentStream.available() == 0) {&#xA;                byte[] frame = frameQueue.poll();&#xA;                if (frame != null) {&#xA;                    currentStream = new ByteArrayInputStream(frame);&#xA;                } else {&#xA;                    return -1;&#xA;                }&#xA;            }&#xA;            return currentStream.read();&#xA;        }&#xA;    };&#xA;}&#xA;&#xA;private void startGrabbingFrames() {&#xA;    try (FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(rtspUrl)) {&#xA;        frameGrabber.setOption("rtsp_transport", "tcp");&#xA;        frameGrabber.start();&#xA;&#xA;        FFmpegFrameFilter frameFilter = new FFmpegFrameFilter("format=yuv420p",&#xA;                frameGrabber.getImageWidth(), frameGrabber.getImageHeight());&#xA;        frameFilter.setPixelFormat(frameGrabber.getPixelFormat());&#xA;        frameFilter.start();&#xA;&#xA;        log.info("Started grabbing frames from RTSP stream.");&#xA;&#xA;        while (true) {&#xA;            Frame frame = frameGrabber.grab();&#xA;            if (frame != null &amp;&amp; frame.image != null) {&#xA;                log.info("Frame grabbed: width={} height={} timestamp={}",&#xA;                        frame.imageWidth, frame.imageHeight, frame.timestamp);&#xA;                frameFilter.push(frame);&#xA;                Frame filteredFrame = frameFilter.pull();&#xA;&#xA;                if (filteredFrame != null &amp;&amp; filteredFrame.image != null) {&#xA;                    log.info("Frame filtered: width={} height={} timestamp={}",&#xA;                            filteredFrame.imageWidth, filteredFrame.imageHeight, filteredFrame.timestamp);&#xA;                    byte[] imageBytes = convertFrameToBytes(filteredFrame);&#xA;                    if (imageBytes.length > 0) {&#xA;                        frameQueue.offer(imageBytes);&#xA;                        log.info("Frame added to queue, queue size={}", frameQueue.size());&#xA;                    }&#xA;                }&#xA;            }&#xA;        }&#xA;    } catch (IOException e) {&#xA;        log.error("Error grabbing frames: {}", e.getMessage(), e);&#xA;    }&#xA;}&#xA;&#xA;private byte[] convertFrameToBytes(Frame frame) {&#xA;    if (frame == null || frame.image == null) {&#xA;        return new byte[0];&#xA;    }&#xA;&#xA;    ByteBuffer byteBuffer = null;&#xA;    for (Object img : frame.image) {&#xA;        if (img instanceof ByteBuffer) {&#xA;            byteBuffer = (ByteBuffer) img;&#xA;            break;&#xA;        }&#xA;    }&#xA;&#xA;    if (byteBuffer == null) {&#xA;        return new byte[0];&#xA;    }&#xA;&#xA;    byte[] bytes = new byte[byteBuffer.remaining()];&#xA;    byteBuffer.get(bytes);&#xA;    return bytes;&#xA;}&#xA;

    &#xA;