Zajímá mě takováhle věc:
mám například tyto shellové skripty
source-a.sh:
ffmpeg -f avfoundation -i 0:0 -framerate 30 -s 1280x720 -f nut -c:v copy -
source-b.sh
ffmpeg -f avfoundation -i 1 -f nut -c:v copy -
player-1.sh
ffplay -
effector-2.sh
ffmpeg -i -vf scale=iw/2:ih/2 -c rawvideo -f nut -
encoder-3.sh
ffmpeg -i - -c h264_qsv -look_ahead 1 -global_quality 30 - bla.mkv
čili jsem si rozsekal pipelinu
ffmpeg -f avfoundation -i 0:0 -framerate 30 -s 1280x720 -f nut -c:v copy - | ffmpeg -i -vf scale=iw/2:ih/2 -c rawvideo -f nut - | ffplay -
na 3 části, kde stačí psát ( po zexecutabitelnění chmod u+x *.sh) (názvy souborů jsou symbolické)
./input.sh | ./effect.sh | ./play.sh
Nicméně, bych chtěl například použít (vsunout) do effect.sh filtr (prostřednictvím argumentu -af adelay=1000\|1000 ), jak to udělat, abych mohl psát
./input.sh | ./effect.sh "adelay=1000|1000" | ./play.sh
Jak editovat sh soubor, aby přijímal argumenty a propluly do effect.sh?
bude to fungovat i když takhle používám řetězení přes | ? Hádám, že bude potřeba puoužít něco jako $*...