You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
Bash
38 lines
1.3 KiB
Bash
#!/bin/bash -xe
|
|
|
|
#
|
|
# Musisz mieć globalnie zainstalowane ts-node (npm install -g ts-node)
|
|
#
|
|
# W katalogu z tym skryptem musisz mieć katalog "pics", w którym są pliki "left.png", "right.png", "none.png" i "both.png"
|
|
#
|
|
|
|
input=/home/kuba/Downloads/odc24.mp3 # tutaj dajemy ścieżkę do pliku mp3 z Arkiem w jednym kanale i Kubą w drugim
|
|
|
|
aresample=8000 # to bez zmian
|
|
|
|
echo dzielimy mp3 na dwa osobne wav
|
|
ffmpeg -i $input -map_channel 0.0.0 /tmp/left.wav -map_channel 0.0.1 /tmp/right.wav
|
|
|
|
echo na dwóch wątkach generujemy surowe pliki
|
|
ffmpeg -i /tmp/left.wav -ac 1 -filter:a aresample=$aresample -map 0:a -c:a pcm_u8 -f data - > /tmp/leftraw &
|
|
ffmpeg -i /tmp/right.wav -ac 1 -filter:a aresample=$aresample -map 0:a -c:a pcm_u8 -f data - > /tmp/rightraw &
|
|
|
|
# czekamy aż obydwa wątki się zakończą
|
|
wait;
|
|
|
|
echo "generating the demuxers...";
|
|
|
|
# generuje ścieżki do złożenia przez ffmpega:
|
|
ts-node generate-demuxer.ts > out/demuxer.txt
|
|
|
|
mkdir -p out
|
|
|
|
# używa demuxer.txt żeby skleić końcowe video z dźwiękiem:
|
|
echo generowanie całości
|
|
ffmpeg -y -f concat -safe 0 -i out/demuxer.txt -r 30 -tune stillimage -vsync vfr -pix_fmt yuv420p out/video.mp4
|
|
# ^ daję safe 0 aby przyjmowało bezwzględne ścieżki
|
|
|
|
|
|
echo łączenie video z dźwiękiem:
|
|
ffmpeg -i out/video.mp4 -i $input -ac 1 -tune stillimage out/video-and-audio.mp4
|