Recherche avancée

Médias (91)

Autres articles (62)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

  • MediaSPIP en mode privé (Intranet)

    17 septembre 2013, par

    À partir de la version 0.3, un canal de MediaSPIP peut devenir privé, bloqué à toute personne non identifiée grâce au plugin "Intranet/extranet".
    Le plugin Intranet/extranet, lorsqu’il est activé, permet de bloquer l’accès au canal à tout visiteur non identifié, l’empêchant d’accéder au contenu en le redirigeant systématiquement vers le formulaire d’identification.
    Ce système peut être particulièrement utile pour certaines utilisations comme : Atelier de travail avec des enfants dont le contenu ne doit pas (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (7801)

  • FFmpeg conversion to mp3 works in terminal, not in script

    19 juillet 2013, par user2598172

    I can run

    ffmpeg -i test.m4a -vn -acodec libmp3lame -ab 256k test.mp3

    And it works perfectly. However, when I have the line :

    ./ffmpeg -i "$SONG_SAVE.m4a" -vn -acodec libmp3lame -ab 256k "$SONG_SAVE$EXT" &> /dev/null

    running in a .sh script (downloading the same file that I was able to successfully convert through the terminal), it returns an mp3 file with no audio data. Does anyone have any idea what could be causing this ? Thanks !

    EDIT : here is the whole script :

    #!/bin/bash

    TITLE="$(echo "$1" | ./recode html..ascii | tr -d '\' | tr -s ' ' | sed 's|\ *$||')"
    TAG_TITLE="$2"
    ARTIST="$(echo "$3" | ./recode html..ascii | tr -d '\' | tr -s ' ')"
    ALBUM="$(echo "$4" | ./recode html..ascii | tr -d '\' | tr -s ' ')"
    IMG="$5"
    TRACK_NUMBER="$6"
    TOTAL_TRACKS="$7"
    URL="$8"
    MIX_TITLE="$9"
    CONVERT="${10}"
    RECURSIVE="${11}"
    SESSION_ID="${12}"
    DOWNLOAD_ID="${13}"
    SONG_ID="${14}"

    SONG_SAVE="songs/$SONG_ID"
    ZIP_SAVE="$SESSION_ID-$DOWNLOAD_ID.zip"
    ZIP_DIR="$MIX_TITLE/"
    ARTWORK_SAVE="artwork/$MIX_TITLE.png"
    SAVE_TITLE="$(echo "$TITLE" | sed 's|/|-|g;s|^\.||g')"

    [ "$TAG_TITLE" == "false" ] && unset TITLE
    [ "$ARTIST" == "false" ] && unset ARTIST
    [ "$ALBUM" == "false" ] && unset ALBUM
    [ "$IMG" == "false" ] && unset IMG
    [ "$TRACK_NUMBER" == "false" ] && unset TRACK_NUMBER TOTAL_TRACKS
    [ "$CONVERT" == "false" ] && unset CONVERT
    [ "$RECURSIVE" == "false" ] && unset RECURSIVE

    while [ -f "SONG_SAVE".part ]; do
       sleep 2
    done

    if [ -f "$SONG_SAVE".m4a ]; then
       EXT=".m4a"
       touch "$SONG_SAVE$EXT"
    elif [ -f "$SONG_SAVE".mp3 ]; then
       EXT=".mp3"
       touch "$SONG_SAVE$EXT"
    else
       curl -Lso "$SONG_SAVE".part "$URL"

       if [ -n "$(file -b "$SONG_SAVE".part | grep "MPEG ADTS")" ]; then
           EXT=".mp3"
       elif [ -n "$(file -b "$SONG_SAVE".part | grep "MPEG v4")" ]; then
       EXT=".m4a"
    else
       EXT=".txt"
       echo "Unable to download: $URL. Sorry ):" > "$SONG_SAVE".part
    fi

    mv "$SONG_SAVE".part "$SONG_SAVE$EXT"
    fi

    if [ -n "$CONVERT" ] && [ "$EXT" == ".m4a" ]; then
    EXT=".mp3"
    if [ ! -f "$SONG_SAVE$EXT" ]; then
       ./ffmpeg -i "$SONG_SAVE.m4a" -vn -acodec libmp3lame -ab 256k "$SONG_SAVE$EXT"         &> /dev/null
       fi
    fi

    if [ "$EXT" == ".mp3" ]; then
       ./eyeD3 --remove-images -t "$TITLE" -a "$ARTIST" -A "$ALBUM" -n "$TRACK_NUMBER" -N     "$TOTAL_TRACKS" "$SONG_SAVE$EXT" &> /dev/null
       if [ -n "$IMG" ]; then
       [ ! -f "$ARTWORK_SAVE" ] && curl -Lso "$ARTWORK_SAVE" "$IMG"
           ./eyeD3 --add-image="$ARTWORK_SAVE":FRONT_COVER "$SONG_SAVE$EXT" &> /dev/null
       fi
    elif [ "$EXT" == ".m4a" ]; then
    if [ -n "$IMG" ]; then
       [ ! -f "$ARTWORK_SAVE" ] && curl -Lso "$ARTWORK_SAVE" "$IMG"
       if [ -n "$TRACK_NUMBER" ]; then
           ./mp4tags -P "$ARTWORK_SAVE" -s "$TITLE" -a "$ARTIST" -R "" -A "$ALBUM" -t "$TRACK_NUMBER" -T "$TOTAL_TRACKS" "$SONG_SAVE$EXT" &> /dev/null
       else
           ./mp4tags -P "$ARTWORK_SAVE" -s "$TITLE" -a "$ARTIST" -R "" -A "$ALBUM" "$SONG_SAVE$EXT" &> /dev/null
       fi
    else
       if [ -n "$TRACK_NUMBER" ]; then
           ./mp4tags -r P -s "$TITLE" -a "$ARTIST" -R "" -A "$ALBUM" -t "$TRACK_NUMBER" -T "$TOTAL_TRACKS" "$SONG_SAVE$EXT" &> /dev/null
       else
           ./mp4tags -r P -s "$TITLE" -a "$ARTIST" -R "" -A "$ALBUM" "$SONG_SAVE$EXT" &> /dev/null
           fi
       fi
    fi

    if [ -n "$RECURSIVE" ]; then
       cd archives
       mkdir -p "$ZIP_DIR"
       chmod 777 "$ZIP_DIR"
       cp "../$SONG_SAVE$EXT" "$ZIP_DIR$SAVE_TITLE$EXT"
       ./zip -q -0 -D -r "$ZIP_DIR$ZIP_SAVE" "$ZIP_DIR$SAVE_TITLE$EXT" &> /dev/null
       rm -f "$ZIP_DIR$SAVE_TITLE$EXT"
       printf "archives/$ZIP_DIR$ZIP_SAVE\n$MIX_TITLE.zip\n$EXT\n"
       echo "$(du -h "$ZIP_DIR$ZIP_SAVE" | tr '\t' '\n' | head -1)"
    else
       printf "$SONG_SAVE$EXT\n$SAVE_TITLE$EXT\n$EXT"
    fi
  • script doesnt recognize bars / lenght right for cutting audio , ffmpeg terminal

    14 avril 2024, par totzillarbeats

    This Terminal script doesnt recognize bars / lenght right for cutting audio , maybe somebody knows whats wrong with the calculation :)

    


    Would be happy about any help the cutting already works !

    


    #!/bin/bash

# Function to extract BPM from filename

get_bpm() {
    local filename="$1"
    local bpm=$(echo "$filename" | grep -oE '[0-9]{1,3}' | head -n1)
    echo "$bpm"
}

# Function to cut audio based on BPM
cut_audio() {
    local input_file="$1"
    local bpm="$2"
    local output_file="${input_file%.*}_cut.${input_file##*.}" # Appends "_cut" to original filename

    # Define the number of beats per bar (assuming 4 beats per bar)
    beats_per_bar=4

    # Calculate the duration of each bar in seconds
    bar_duration=$((60 * beats_per_bar / bpm))

    # Define start and end times for each bar range
    start_times=(0 21 33 45 57 69 81 93 105 117 129 141)
    end_times=(20 29 41 53 65 77 89 101 113 125 137 149)

    # Iterate through each bar range
    for ((i = 0; i < ${#start_times[@]}; i++)); do
        start_time=${start_times[$i]}
        end_time=${end_times[$i]}
        echo "Cutting audio file $input_file at $bpm BPM for bar $((i + 1)) ($start_time-$end_time) for $bar_duration seconds..."

        # Cut audio for current bar range using ffmpeg
        ffmpeg -i "$input_file" -ss "$start_time" -to "$end_time" -c copy "$output_file"_"$((i + 1)).${input_file##*.}" -y
    done

    # Check if the output files are empty and delete them if so
    for output_file in "${output_file}"_*; do
        if [ ! -s "$output_file" ]; then
            echo "Output file $output_file is empty. Deleting..."
            rm "$output_file"
        fi
    done

    echo "Audio cut and saved as $output_file"
}


# Main script
if [ "$#" -eq 0 ]; then
    echo "Usage: $0 [audio_file1] [audio_file2] ..."
    exit 1
fi

for file in "$@"; do
    bpm=$(get_bpm "$file")
    if [ -z "$bpm" ]; then
        echo "Error: No BPM found in filename $file"
    else
        cut_audio "$file" "$bpm"
    fi
done


    


    Maybe its only the math calc in the beginning but idk :)

    


    If you need more details just lmk

    


  • Script doesnt recognize bars / length right for cutting audio , ffmpeg terminal

    14 avril 2024, par totzillarbeats

    This terminal script doesn't recognize bars / length right for cutting audio, maybe somebody knows what's wrong with the calculation ...

    


    Would be happy about any help the cutting already works !

    


    #!/bin/bash

# Function to extract BPM from filename

get_bpm() {
    local filename="$1"
    local bpm=$(echo "$filename" | grep -oE '[0-9]{1,3}' | head -n1)
    echo "$bpm"
}

# Function to cut audio based on BPM
cut_audio() {
    local input_file="$1"
    local bpm="$2"
    local output_file="${input_file%.*}_cut.${input_file##*.}" # Appends "_cut" to original filename

    # Define the number of beats per bar (assuming 4 beats per bar)
    beats_per_bar=4

    # Calculate the duration of each bar in seconds
    bar_duration=$((60 * beats_per_bar / bpm))

    # Define start and end times for each bar range
    start_times=(0 21 33 45 57 69 81 93 105 117 129 141)
    end_times=(20 29 41 53 65 77 89 101 113 125 137 149)

    # Iterate through each bar range
    for ((i = 0; i < ${#start_times[@]}; i++)); do
        start_time=${start_times[$i]}
        end_time=${end_times[$i]}
        echo "Cutting audio file $input_file at $bpm BPM for bar $((i + 1)) ($start_time-$end_time) for $bar_duration seconds..."

        # Cut audio for current bar range using ffmpeg
        ffmpeg -i "$input_file" -ss "$start_time" -to "$end_time" -c copy "$output_file"_"$((i + 1)).${input_file##*.}" -y
    done

    # Check if the output files are empty and delete them if so
    for output_file in "${output_file}"_*; do
        if [ ! -s "$output_file" ]; then
            echo "Output file $output_file is empty. Deleting..."
            rm "$output_file"
        fi
    done

    echo "Audio cut and saved as $output_file"
}


# Main script
if [ "$#" -eq 0 ]; then
    echo "Usage: $0 [audio_file1] [audio_file2] ..."
    exit 1
fi

for file in "$@"; do
    bpm=$(get_bpm "$file")
    if [ -z "$bpm" ]; then
        echo "Error: No BPM found in filename $file"
    else
        cut_audio "$file" "$bpm"
    fi
done


    


    Maybe its only the math calc in the beginning but idk :)

    


    If you need more details just lmk