
Advanced search
Medias (1)
-
Video d’abeille en portrait
14 May 2011, by
Updated: February 2012
Language: français
Type: Video
Other articles (80)
-
Le profil des utilisateurs
12 April 2011, byChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 November 2010, byAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 May 2011, byDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
On other websites (9991)
-
Looping Variables in a Batch File (for use with FFmpeg)
16 April 2021, by OrdinaryCarrot16I am creating a batch script that stores the input of the user into variables, that will later be used for creating converting files then adding metadata (via FFmpeg). It is working pretty good, now I'm just trying to figure out how to loop the FFmpeg line that uses all the variables the user inputted, and it will loop the command till it reaches the number specified in the 'track_amount' variable.


Do you have any ideas on how to make this work? Thanks!


setlocal enabledelayedexpansion

:: Scan current directory for audio files
DIR *.mp3 OR *.m4a

set /P cover-art=Select the Audio/Image File with the Cover Art (ex. MP3/M4A or JPG/PNG): 
set /P artist=Artist/Band Name: 
set /P track_amount=How many tracks are in this album: 

if %track_amount% GTR 1 (
 set /P album=Album Name: 
)

set /P filename=Song File Name: 
set /P title=Song Name: 
set /P track=Track Number: 
set /P genre=Genre: 
set /P language=Language: 

ffmpeg -i "%cover-art%" -vf scale=512:512 -sws_flags bicubic cover_tmp.png

for %%t in (!track_amount!) do ffmpeg -i "%filename%" -i cover_tmp.png -map_metadata -1 -map 0:0 -map 1:0 -id3v2_version 3 -metadata artist="%artist%" -metadata album="%album%" -metadata title="%title%" -metadata track="%track%/%track_amount%" -metadata genre="%genre%" -metadata language="%language%" -c:1 png -disposition:1 attached_pic -c:a libmp3lame -ar 44100 -b:a 160k "%title%.mp3"

pause



-
How to start music at a specific time
16 March 2019, by INeed ADollarI want to start a song file at a specific time with ffmpeg in python and I don’t know if this is possible. I make a discord bot and I want to make a command about this. Thank you for any help!
-
Bash script to automate FFmpeg operations fails when calling the command, but copy-pasting the generated command into the terminal works [duplicate]
28 February, by GaboScharff99I wrote a bash script which automates a number of conversion operations on video files using FFmpeg. Oddly enough, the FFmpeg call itself now fails when running the script, with a very confusing error message, I might add, but when I copy the command generated by the script into the terminal and run it, it works flawlessly. I'm sorry to insert such a long code block here, but considering how strange this error is, it might be anywhere in the script, so here it is:


#!/bin/bash

audioTrack=1
subSource=1
subTrack=0
transcodeVideo=1
transcodeAudio=1
volumeMultiplier=1
degradeToStereo=0
subLanguage="Japanese"

while getopts "t:ns:vam:dl:h" opt; do
 case "$opt" in
 t) audioTrack=${OPTARG};;
 n) subSource=0;;
 s) subTrack=${OPTARG};;
 v) transcodeVideo=0;;
 a) transcodeAudio=0;;
 m) volumeMultiplier=${OPTARG};;
 d) degradeToStereo=1;;
 l) subLanguage=${OPTARG};;
 h)
 echo "Options:"
 echo "-t [integer]: Audio track number. Default: 1."
 echo "-n: If included, subtitles will be taken from internal source."
 echo "-s [integer]: Subtitles track number. Default: 0."
 echo "-v: If included, video source will be copied without transcoding."
 echo "-a: If included, audio source will be copied without transcoding."
 echo "-m [number]: Volume multiplier. If 1, volume is unaffected. Default: 1"
 echo "-d: If included, audio will be degraded to stereo."
 echo "-l [language]: Subtitles language. Only used for external subtitles source. Default: Japanese."
 exit 0
 ;;
 esac
done

echo "Audio track: $audioTrack."
echo "Subtitles track: $subTrack."
params="-map 0:0 -map 0:$audioTrack -map $subSource:$subTrack -c:v"

if [[ $transcodeVideo -eq 1 ]]; then
 echo "Video will be transcoded."
 params="$params hevc"
elif [[ $transcodeVideo -eq 0 ]]; then
 echo "Video will be copied without transcoding."
 params="$params copy"
fi

params="$params -c:a"

if [[ $transcodeAudio -eq 1 ]]; then
 echo "Audio will be transcoded."
 params="$params libopus"
elif [[ $transcodeAudio -eq 0 ]]; then
 echo "Audio will be copied without transcoding."
 params="$params copy"
fi

if [[ $volumeMultiplier -ne 1 ]]; then
 echo "Volume will be multiplied by a factor of $volumeMultiplier."
 params="$params -filter:a 'volume=$volumeMultiplier'"
else
 echo "Volume will be unaffected."
fi

if [[ $degradeToStereo -eq 1 ]]; then
 echo "Audio will be degraded to stereo."
 params="$params -ac 2"
elif [[ $degradeToStereo -eq 0 ]]; then
 echo "Audio will not be degraded to stereo."
fi

params="$params -c:s copy"

if [[ $subSource -eq 1 ]]; then
 echo "Subtitles source is external."
 echo "Subtitles language is $subLanguage."
 params="$params -metadata:s:s:0 title='' -metadata:s:s:0 language='$subLanguage'"
else
 echo "Subtitles source is internal."
fi

if [[ -f titles.txt ]]; then
 echo "A titles.txt file was found. Titles will be changed according to it."
 echo "Please check titles.txt to make sure the titles are correct."
 changeTitles=1
 counter=0
else
 echo "A titles.txt file was not found. Titles will not be changed."
 changeTitles=0
fi

read -p "Are these options correct? (y/n) " choice

case "$choice" in
 y|Y)
 echo "Initiating conversion sequence. This may take a while..."

 mkdir output
 currentParams=""

 shopt -s nullglob
 for i in *.mp4 *.mkv; do
 currentParams=$params
 fileNameNoExtension=$(echo $i | rev | cut -f 2- -d '.' | rev)

 if [[ $subSource -eq 1 ]]; then
 currentParams="-f srt -i $fileNameNoExtension.srt $currentParams"
 fi

 if [[ $changeTitles -eq 1 ]]; then
 ((counter++))
 currentParams="$currentParams -metadata title='$(awk "NR==$counter" titles.txt)'"
 fi

 ffmpeg -i "$i" $currentParams "output/$fileNameNoExtension.mkv"
 done

 echo "Conversion finished!"
 ;;
 n|N) echo "Operation canceled. Exiting.";;
 *) echo "Invalid input. Try again.";;
esac



The directory I'm running this in contains six video files:


- 

E1 - The Pirates of Orion.mkv
E2 - Bem.mkv
E3 - The Practical Joker.mkv
E4 - Albatross.mkv
E5 - How Sharper Than a Serpent's Tooth.mkv
E6 - The Counter-Clock Incident.mkv














Here's the
titles.txt
file, for completion's sake:

Star Trek: The Animated Series - Season 2, Episode 1 - The Pirates of Orion
Star Trek: The Animated Series - Season 2, Episode 2 - Bem
Star Trek: The Animated Series - Season 2, Episode 3 - The Practical Joker
Star Trek: The Animated Series - Season 2, Episode 4 - Albatross
Star Trek: The Animated Series - Season 2, Episode 5 - How Sharper Than a Serpent's Tooth
Star Trek: The Animated Series - Season 2, Episode 6 - The Counter-Clock Incident



And finally, here's the error message given by FFmpeg on the terminal for every video file when running the command:


Unable to find a suitable output format for 'Trek:'
Trek:: Invalid argument



Maybe there are better ways to handle all of this, but first and foremost, I would like to figure out why the command fails with such a confusing error message. The only place where the string 'Trek:' is found is in the title taken from
titles.txt
, but I don't understand why that's seemingly being passed to the name of the output file instead of the title, and apparently only when running the script.

Thanks a lot for your answers! I know this is quite a bit of text, so I really appreciate you taking your time to read through this.