Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (75)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • 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 (9864)

  • ffmpeg - I want to concat multiple videos (front / rear) with overlay and one second delay

    12 mai 2024, par Andrej Florjančič

    I try to write bash script to concat front and rear video files with delay 1 second at start and overlay rear over front.

    


    I wrote the following bash script :

    


    # Define the output file
output_file="${VIDEO}/final_output_${choice}.mp4"

# Collect and sort the video files
front_files=( $(ls *_F.MP4 | sort) )
rear_files=( $(ls *_R.MP4 | sort) )

# Create a file to hold ffmpeg input commands and filter scripts
input_list="input_files.txt"
filter_script="filter_complex.txt"
inputs=""

# Clear the input list and filter script files
echo "" > "$input_list"
echo "" > "$filter_script"

# Number of files
num_files=${#front_files[@]}

# Iterate through the sorted files to build the filter script
for i in "${!front_files[@]}"; do
    echo "file '${front_files[$i]}'" >> "$input_list"
    echo "file '${rear_files[$i]}'" >> "$input_list"
    
    echo "[$((2*i)):v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_$i]; [$((2*i)):a]atrim=start=1,asetpts=PTS-STARTPTS[a_$i];" >> "$filter_script"
    echo "[$((2*i+1)):v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_$i];" >> "$filter_script"  # Rear video only
    echo "[f_$i][r_$i]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_$i];" >> "$filter_script"

    input+="[mix_$i][a_$i]"
done

# Concatenate all combined labels
echo "${input}concat=n=${#front_files[@]}:v=1:a=1[v][a]" >> "$filter_script"

# Run FFmpeg with filter script
ffmpeg -f concat -safe 0 -i "$input_list" \
    -filter_complex_script "$filter_script" \
    -map "[v]" -map "[a]" \
    -y "$output_file"


    


    This script generates two files input_list.txt :

    


    file '20200826_084407_F.MP4'
file '20200826_084407_R.MP4'
file '20200826_084708_F.MP4'
file '20200826_084708_R.MP4'
file '20200826_084910_F.MP4'
file '20200826_084910_R.MP4'


    


    filter_script.txt :

    


    [0:v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_0]; [0:a]atrim=start=1,asetpts=PTS-STARTPTS[a_0];
[1:v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_0];
[f_0][r_0]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_0];
[2:v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_1]; [2:a]atrim=start=1,asetpts=PTS-STARTPTS[a_1];
[3:v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_1];
[f_1][r_1]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_1];
[4:v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_2]; [4:a]atrim=start=1,asetpts=PTS-STARTPTS[a_2];
[5:v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_2];
[f_2][r_2]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_2];
[mix_0][a_0][mix_1][a_1][mix_2][a_2]concat=n=3:v=1:a=1[v][a]


    


    I'w got error :

    


    Input #0, concat, from 'input_files.txt':
  Duration: N/A, start: 0.000000, bitrate: 11973 kb/s
  Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 11877 kb/s, 30 fps, 30 tbr, 60k tbn, 60 tbc
    Metadata:
      creation_time   : 2020-08-26T08:47:07.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : h264
  Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 96 kb/s
    Metadata:
      creation_time   : 2020-08-26T08:47:07.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Invalid file index 1 in filtergraph description
[0:v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_0]; [0:a]atrim=start=1,asetpts=PTS-STARTPTS[a_0];
[1:v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_0];
[f_0][r_0]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_0];
[2:v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_1]; [2:a]atrim=start=1,asetpts=PTS-STARTPTS[a_1];
[3:v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_1];
[f_1][r_1]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_1];
[4:v]trim=start=1,scale=1920:1080,setpts=PTS-STARTPTS[f_2]; [4:a]atrim=start=1,asetpts=PTS-STARTPTS[a_2];
[5:v]trim=start=1,scale=640:360,setpts=PTS-STARTPTS[r_2];
[f_2][r_2]overlay=x=(main_w-overlay_w-10):y=(main_h-overlay_h-10)[mix_2];
[mix_0][a_0][mix_1][a_1][mix_2][a_2]concat=n=3:v=1:a=1[v][a]


    


    What am I doing wrong ?

    


  • Is there a way to horizontal flip video captured from flutter front camera

    5 mai 2024, par JoyJoy

    Basically, I'm trying to flip video horizontally after capturing it from flutter front camera. So I start recording, stop recording, flip the video and pass it to another page. I'm fairly new and would appreciate any assistance as my code isn't working

    


    I've tried doing so using the new ffmpeg_kit flutter

    


    Future<void> flipVideo(String inputPath, String outputPath) async{&#xA;final ffmpegCommand = "-i $inputPath -vf hflip $outputPath";&#xA;final session = FFmpegKit.executeAsync(ffmpegCommand);&#xA;await session.then((session) async {&#xA;  final returnCode = await session.getReturnCode();&#xA;  if (ReturnCode.isSuccess(returnCode)) {&#xA;    print(&#x27;Video flipping successful&#x27;);&#xA;  } else {&#xA;    print(&#x27;Video flipping failed: ${session.getAllLogs()}&#x27;);&#xA;  }&#xA;});}&#xA;&#xA;void stopVideoRecording() async {&#xA;XFile videopath = await cameraController.stopVideoRecording();&#xA;&#xA;try {&#xA;  final Directory appDocDir = await &#xA;  getApplicationDocumentsDirectory();&#xA;  final String outputDirectory = appDocDir.path;&#xA;  final String timeStamp = DateTime.now().millisecondsSinceEpoch.toString();&#xA;  final String outputPath = &#x27;$outputDirectory/flipped_video_$timeStamp.mp4&#x27;;&#xA;&#xA;  await flipVideo(videopath.path, outputPath);&#xA;&#xA;  // Once completed,&#xA;   Navigator.push(&#xA;    context,&#xA;    MaterialPageRoute(&#xA;      builder: (builder) => VideoViewPage(&#xA;        path: File(outputPath),&#xA;        fromFrontCamera: iscamerafront,&#xA;        flash: flash,&#xA;      )));&#xA;  print(&#x27;Video flipping completed&#x27;);&#xA;} catch (e) {&#xA;  print(&#x27;Error flipping video: $e&#x27;);&#xA;}&#xA;</void>

    &#xA;

    }

    &#xA;

  • Resampling function produces audio with noise

    29 avril 2024, par kitty uwu

    I have function for resampling one channel of audio (as a float array) :

    &#xA;

    int resample_and_save(float *audio_input, int input_sample_rate, int output_sample_rate, int input_num_of_samples, const char *output_file) {&#xA;    AVChannelLayout ch_layout = AV_CHANNEL_LAYOUT_MONO;&#xA;    SwrContext *swr_ctx = swr_alloc();&#xA;    uint8_t* resampled_data = NULL;&#xA;    float *audio_output = NULL;&#xA;    int ret = 0;&#xA;&#xA;    if (!swr_ctx) {&#xA;        fprintf(stderr, "Could not allocate resampler context\n");&#xA;        return -1;&#xA;    }&#xA;&#xA;    av_opt_set_chlayout(swr_ctx, "in_chlayout", &amp;ch_layout, 0);&#xA;    av_opt_set_int(swr_ctx, "in_sample_rate", input_sample_rate, 0);&#xA;    av_opt_set_sample_fmt(swr_ctx, "in_sample_fmt", AV_SAMPLE_FMT_FLT, 0);&#xA;&#xA;    av_opt_set_chlayout(swr_ctx, "out_chlayout", &amp;ch_layout, 0);&#xA;    av_opt_set_int(swr_ctx, "out_sample_rate", output_sample_rate, 0);&#xA;    av_opt_set_sample_fmt(swr_ctx, "out_sample_fmt", AV_SAMPLE_FMT_FLT, 0);&#xA;&#xA;    if ((ret = swr_init(swr_ctx)) &lt; 0) {&#xA;        ret = -1;&#xA;        goto cleanup;&#xA;    }&#xA;&#xA;    int output_samples_count = av_rescale_rnd(swr_get_delay(swr_ctx, input_sample_rate) &#x2B; input_num_of_samples, output_sample_rate, input_sample_rate, AV_ROUND_UP);&#xA;    ret = av_samples_alloc(&amp;resampled_data, NULL, 1, output_samples_count, AV_SAMPLE_FMT_FLT, 0);&#xA;    if (ret &lt; 0) {&#xA;        ret = -1;&#xA;        goto cleanup;&#xA;    }&#xA;&#xA;    const uint8_t *in_samples[1] = { (const uint8_t *)audio_input };&#xA;    int frame_count = swr_convert(swr_ctx, &amp;resampled_data, output_samples_count, in_samples, input_num_of_samples);&#xA;    if (frame_count &lt; 0) {&#xA;        fprintf(stderr, "Error while resampling\n");&#xA;        ret = -1;&#xA;        goto cleanup;&#xA;    }&#xA;&#xA;    int frame_count_last = swr_convert(swr_ctx, &amp;resampled_data, output_samples_count, 0, 0);&#xA;    frame_count &#x2B;= frame_count_last;&#xA;    audio_output = (float *)malloc(frame_count * sizeof(float));&#xA;    if (!audio_output) {&#xA;        fprintf(stderr, "Could not allocate memory for output\n");&#xA;        ret = -1;&#xA;        goto cleanup;&#xA;    }&#xA;&#xA;    memcpy(audio_output, &amp;resampled_data[0], frame_count * sizeof(float));&#xA;    ret = write_wav(output_file, audio_output, frame_count, output_sample_rate);&#xA;&#xA;cleanup:&#xA;    return ret;&#xA;}&#xA;&#xA;

    &#xA;

    When I play the audio (even one-channel audio), there is a lot of noise on it, like there are missing samples. How can I fix it ?

    &#xA;