
Recherche avancée
Autres articles (73)
-
Le profil des utilisateurs
12 avril 2011, parChaque 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 novembre 2010, parAccé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 (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (7182)
-
Bash script to automate FFmpeg operations fails when calling the command, but copy-pasting the generated command into the terminal works [duplicate]
28 février, par 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.


-
FFMPEG mp3 file segmentation on Mac OSx Error . Only one full mp3 file generated as segmented file
2 novembre 2017, par iThirstWhat I am trying to achieve is to take an MP3 file as source file and generate multiple segments of approx 10s each from it. I am using node’s fluent
ffmpeg
inside node js application. Below code works absolutely fine and generates proper results onLinux/Ubuntu
16.04 server while fails with below error onmac osx
. It ends by generating single.mp3
file and.m3u8
playlist file onmac osx
while it generates multiple segmentedmp3
files (each 11s) if executed onubuntu
server.Error Log:
[mp3 @ 0x7fc469010c00] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 9223372036854422218 >= -9223372033278215478
[segment @ 0x7fc469006a00] Packets poorly interleaved, failed to avoid negative timestamp -9223372033277846838 in stream 0.// Node js code to execute ffmpeg command is given below
var command = ffmpeg(fs.createReadStream(directoryPath + fileName), {timeout : 900})
.inputFormat('mp3')
.inputOptions([
//'-re',
//'-i input.mp3',
//directoryPath +'albumart.jpg',
'-codec copy',
'-map 0',
'-f segment',
'-segment_list ' + directoryPath + fileName_noExtension + '.m3u8',
'-segment_list_flags +live',
'-segment_time 10',
directoryPath + 'out%03d.mp3'
]);
command.on('start',{}).on('stderror').on('end').output(directoryPath + 'Out.mp3')
.run()//
Any help is appreciated in this direction.
-
Revision 7cc14e598e : Code cleanup. Lower case variable names, code simplification by using already d
25 mars 2013, par Dmitry KovalevChanged Paths : Modify /vp9/common/vp9_loopfilter.c Modify /vp9/common/vp9_quant_common.c Modify /vp9/common/vp9_quant_common.h Modify /vp9/decoder/vp9_decodframe.c Code cleanup. Lower case variable names, code simplification by using already defined clamp and read_le16 functions. Change-Id : (...)