
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (39)
-
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP 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 (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (6087)
-
Top 5 Web Analytics Tools for Your Site
11 août 2023, par Erin — Analytics Tips -
Data Privacy Issues to Be Aware of and How to Overcome Them
9 mai 2024, par Erin -
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.