Recherche avancée

Médias (1)

Mot : - Tags -/intégration

Autres articles (98)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

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

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

Sur d’autres sites (13115)

  • Checking Video Quality using WP Code, Forminator and FFmpeg is not working [closed]

    3 septembre 2024, par guiliannkamga Guilian90

    I have a WordPress website where users should be able to upload videos. The quality of the videos should be checked upon upload, meaning the videos must have a 16:9 aspect ratio and be in HD. If a video does not meet these conditions, the upload should not be allowed, and the user should be informed of the reason.

    


    I am using the WordPress plugin Forminator for the video upload form and WP Code with a code snippet that contains PHP code. FFmpeg version 4.4.2 is installed on my server.

    


    ffmpeg version

    


    Form to upload a Video

    


    My provider is DreamHost, and I can connect to the server via Terminal on my MacBook and run ffmpeg commands without any issues.

    


    I added the form to a page and when I upload invalid videos, unfortunately, I do not receive any error messages, which should be happening according to my code, and I do not know why.

    


    Uploading the Video

    


    Success Message after uploading the Video

    


    Can someone help me ?

    


    add_filter('forminator_custom_form_submit_before_set_fields', 'forminator_video_validation', 10, 3);

function forminator_video_validation($entry, $form_id, $field_data) {
    foreach ($field_data as $field) {
        if ($field['name'] === 'upload-1') { // 'upload-1' is the ID of the Datei-Upload-Field in Forminator
            $file = $field['value']['file']['file_path'];

            // check if the file exists
            if (!file_exists($file)) {
                wp_die('File does not exist');
            }

            // ffmpeg command to check video size and resolution
            $command = "ffmpeg -i " . escapeshellarg($file) . " 2>&1";
            $output = shell_exec($command);

            // extract resoltion from the ffmpeg output
            if (preg_match('/Stream #0:0.*Video:.* (\d+)x(\d+)/', $output, $matches)) {
                $width = (int) $matches[1];
                $height = (int) $matches[2];
                $aspect_ratio = $width / $height;
                $allowed_aspect_ratio = 16 / 9;
                $min_width = 1280;
                $min_height = 720;

                // check if the video fullfills the criterias
                if ($width < $min_width || $height < $min_height || round($aspect_ratio, 2) != round($allowed_aspect_ratio, 2)) {
                    wp_die('The video must be at least in HD (1280x720) and must have the format 16:9. (Found: ' . $width . 'x' . $height . ')');
                }
            } else {
                // If the video could not be analysed
                wp_die('The Video could not be analysed');
            }
        }
    }
}


    


    PHP Code Snippet in WPCode

    


    WPCode Settings

    


  • ffmpeg -concat slowing down AAC audio files

    28 août 2014, par Marc

    I am concatenating six m4a files with this command

    ffmpeg -f concat -i audiofiles.txt -c copy all_audio_edited.m4a

    each file has a duration of 6 hours (24 in total) but the concatenation doesn’t work quite well : the first part of the file (the first m4a) is perfect, but all the others are slowed down, so the final duration is >26 hours

    What’s wrong ?

    Thanks

    Marcs-MacBook-Pro:Sof marc$ ffmpeg -report -f concat -i audiofiles.txt -c copy all_audio_edited.m4a
    ffmpeg started on 2014-08-28 at 23:35:06
    Report written to "ffmpeg-20140828-233506.log"
    ffmpeg version 2.3 Copyright (c) 2000-2014 the FFmpeg developers
     built on Aug 26 2014 17:59:15 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/2.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libquvi --enable-libvidstab --enable-libx265 --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1_1/include/openjpeg-1.5 '
     libavutil      52. 92.100 / 52. 92.100
     libavcodec     55. 69.100 / 55. 69.100
     libavformat    55. 48.100 / 55. 48.100
     libavdevice    55. 13.102 / 55. 13.102
     libavfilter     4. 11.100 /  4. 11.100
     libavresample   1.  3.  0 /  1.  3.  0
     libswscale      2.  6.100 /  2.  6.100
     libswresample   0. 19.100 /  0. 19.100
     libpostproc    52.  3.100 / 52.  3.100
    [concat @ 0x7fcb6c803400] Estimating duration from bitrate, this may be inaccurate
    Input #0, concat, from 'audiofiles.txt':
     Duration: 00:00:00.00, start: 0.000000, bitrate: 279 kb/s
       Stream #0:0: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 280 kb/s
    Output #0, ipod, to 'all_audio_edited.m4a':
     Metadata:
       encoder         : Lavf55.48.100
       Stream #0:0: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, 280 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
    Press [q] to stop, [?] for help
    size= 3020597kB time=26:07:14.44 bitrate= 263.1kbits/s    
    video:0kB audio:3004946kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.520849%
  • Decoding the h.264 stream from a COM port

    18 mars, par Peter

    I would like to know if there is a reliable way to decode an H.264 NAL stream coming through a serial port using software.

    


    So far, I have managed to decode a single frame using a python script. In this script, I first write the incoming data to a file, and when the end-of-frame marker 00_00_00_01 appears, I display the frame using ffplay.

    


    import serial
import subprocess
import os
import time

ser = serial.Serial('COM3', 115200, timeout=1)
output_file = "output.264"

# Variable to store the ffplay process
ffplay_process = None

# Open the file for writing in binary mode
with open(output_file, "wb") as file:

    print("Writing bytes to output.264. Waiting for the end-of-frame marker 0x00000001.")

    buffer = bytearray()
    marker = b'\x00\x00\x00\x01'

    try:
        while True:
            if ser.in_waiting:  # If there is data in the buffer
                data = ser.read(ser.in_waiting)  # Read all available bytes
                buffer.extend(data)

                # Check if the end-of-frame marker is in the buffer
                while marker in buffer:
                    index = buffer.index(marker) + len(marker)  # Position after the marker
                    frame = buffer[:index]  # Extract the frame
                    buffer = buffer[index:]  # Keep the remaining data

                    print(f"Frame recorded: {len(frame)} bytes")
                    file.write(frame)  # Write the frame to the file
                    file.flush()  # Force writing to disk

                    # Close the ffplay window if it is already open
                    if ffplay_process and ffplay_process.poll() is None:
                        ffplay_process.terminate()
                        ffplay_process.wait()  # Wait for the process to terminate

                    # Play the recorded frame, reopening the window
                    ffplay_process = subprocess.Popen(["ffplay", "-f", "h264", "-i", output_file])

    except KeyboardInterrupt:
        print("\nRecording stopped.")
    finally:
        # Close the serial port and the ffplay process
        ser.close()


    


    However, each time a new end-of-frame marker is detected, the ffplay window closes and reopens to show the next frame. It will flicker when transferring the video. Is there a way to display the frames in the same window for seamless playback when streaming video ?

    


    Or is there a better approach or software that is more suited for this task ? I do not know where to start, so I will be glad for any hints.