397 liens privés
Logiciel pour faire une vidéo avec un spectre sonore et une image en arrière plan, à partir d'un fichier son.
Avantages : Spectogrammes sympas, possibilité de découper le son
Inconvénients : 300 secondes max, pas possible d'uploader un fichier image à la volée : il faut créer un thème
Pour jouer avec sans se salir :
docker build -t audiogram https://github.com/nypublicradio/audiogram.git
docker run -p 8888:8888 -t -i audiogram
firefox localhost:8888
Ou sinon, un exemple avec ffmpeg :
ffmpeg -i audio.flac -loop 1 -i bg.jpg -filter_complex \
"[0:a]showfreqs=mode=bar:ascale=log:fscale=log:s=600x300:colors=#ffffff[sf]; \
[1:v]scale=1280:-1,crop=iw:720[bg]; \
[bg][sf]overlay=shortest=1:format=auto,format=yuv420p[out]" \
-map "[out]" -map 0:a -c:v libx264 -preset fast out_twitter.mp4
ffmpeg -i in.mp3 -y -loop 1 -i in.jpg -filter_complex \
"[0:a]showfreqs=cmode=separate:mode=bar:ascale=cbrt:fscale=log:s=600x600:colors=#ffffff[tmp]; \
[tmp]split[up][down]; \
[up]crop=in_w:in_h/2:0:0[up]; \
[down]crop=in_w:in_h/2:0:in_h/2,vflip[down];[up][down]vstack[tmp]; \
[tmp]crop=in_w:in_h/2:0:in_h/4[tmp]; \
[1:v]scale=1280:-1,crop=in_w:720[bg]; \
[bg][tmp]overlay=x=50:y=50:shortest=1:format=auto,format=yuv420p[out]" \
-map "[out]" -map 0:a -c:v libx264 -preset fast out.mp4
ffmpeg -i in.mp3 -y -loop 1 -i in.png -filter_complex \
"[0:a]showfreqs=cmode=separate:mode=bar:ascale=cbrt:fscale=log:s=600x600:colors=#ffffff[tmp]; \
[tmp]split[up][down]; \
[up]crop=in_w:in_h/2:0:0[up]; \
[down]crop=in_w:in_h/2:0:in_h/2,vflip[down];[up][down]vstack[tmp]; \
[tmp]crop=in_w:in_h/2:0:in_h/4[tmp]; \
[1:v]scale=1280:-1,crop=in_w:720[bg]; \
[bg][tmp]overlay=x=50:y=50:shortest=1:format=auto,format=yuv420p[out]" \
-map "[out]" -map 0:a -c:v libx264 -preset fast out.mp4
- http://lukaprincic.si/development-log/ffmpeg-audio-visualization-tricks
ffmpeg -i in.mp3 -filter_complex "[0:a]showwaves=mode=line:s=hd480:colors=Yellow@0.5|Blue@0.5:scale=sqrt[v];[v]drawtext=text='text':fontcolor=White@0.5:fontsize=30:font=Arvo:x=(w-text_w)/5:y=(h-text_h)/5[out]" -map "[out]" -map 0:a -pix_fmt yuv420p -b:a 360k -r:a 44100 OUTPUT.mp4
Contexte: partager de l'audio, mais le site requiert un format WebM avec piste vidéo "correcte" à frames I-P-B
ffmpeg -i audio.ogg -loop 1 -r 3 -i image.jpg -c:a libopus -shortest resultat.webm
Mon fork : ffmpeg -i sound.mp3 -loop 1 -r 3 -i picture.jpg -c:a copy -shortest out.mp4
Compat Twitter : ffmpeg -i sound.mp3 -loop 1 -r 3 -i image.jpg -vcodec libx264 -pix_fmt yuv420p -c:a aac -shortest out_twitter.mp4
ffmpeg -i video.mp4 -vf subtitles=subtitles.srt -crf 18 video-with-subtitles.mp4
ou ffmpeg.sh
si vous utilisez ma version dockerisée (https://github.com/jeekajoo/ffmpeg) à jour en version 3.4.1
Le script python dont l'auteur parle à la fin est très pratique.
Vous pouvez le rendre compatible avec avconv
en remplaçant toutes les occurrences de ffmpeg
par avconv
.
sed -i "s/ffmpeg/avconv/g" ffmpeg-split.py
public/videos/PSES2014$ for file in $(ls -1 *.mp4 | cut -d \. -f 1); do avconv -i $file\.mp4 -codec:v libvpx -cpu-used 0 -b:v 500k -qmin 10 -qmax 42 -maxrate 500k -bufsize 1000k -threads 4 -vf scale=-1:480 -codec:a libvorbis -b:a 128k $file\.webm; done
Ca va me permettre de gagner un peu de place tout en supportant des formats ouverts.
Vidéos visibles ici: http://pub.jeekajoo.eu/videos/PSES2014/
Silence, ça tourne.