Fórum Root.cz

Ostatní => Odkladiště => Téma založeno: čuzmek 12. 10. 2018, 13:20:12

Název: Řetězení příkazů rozsekaných po souborech
Přispěvatel: čuzmek 12. 10. 2018, 13:20:12
Zajímá mě takováhle věc:
mám například tyto shellové skripty
Kód: [Vybrat]
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
Kód: [Vybrat]
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é)
Kód: [Vybrat]
./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
Kód: [Vybrat]
./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 $*...
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: k3dAR 12. 10. 2018, 15:39:06
"řetězení přes |" je irelevantni, protoze ty parametr davas konkretnimu scriptu a ten si ho primo zpracuje

ano, "neco" jako $* nebo $@ ;-)
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: Yokotashi 16. 10. 2018, 13:21:08
Nejsem si jist, ze jsem uplne pochopil zadani, takze odpovim nekolika skripty, se kterymi si zkus pohrat:
Hromada znaku minus ---- oddeluje kod od popisu.

nahrazeni1.sh
----------------------
sed "s/0/$1/g;s/1/$2/g"
----------------------

cat /proc/cpuinfo | ./nahrazeni1.sh nula jedna | cat

nahrazeni2.sh
----------------------
sed "s/0/$@/g"
----------------------

cat /proc/cpuinfo | ./nahrazeni2.sh prvniparametr druhyparametr tretiparametr | cat
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: R2D2 16. 10. 2018, 17:17:42
Jen nástřel: named pipes ?
Nema cas to hledat
Zajímá mě takováhle věc:
mám například tyto shellové skripty
Kód: [Vybrat]
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
Kód: [Vybrat]
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é)
Kód: [Vybrat]
./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
Kód: [Vybrat]
./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 $*...
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: R2D2 16. 10. 2018, 17:20:02
Jen nástřel: named pipes ?
Nemam cas to hledat
Zajímá mě takováhle věc:
mám například tyto shellové skripty
Kód: [Vybrat]
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
Kód: [Vybrat]
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é)
Kód: [Vybrat]
./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
Kód: [Vybrat]
./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 $*...
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: redrlo 16. 10. 2018, 18:09:37
Jen nástřel: named pipes ?
Nemam cas to hledat
COPYPASTE
to už jsme četli, dokonce třikrát
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: Kit 16. 10. 2018, 18:20:50
effect.sh:
Kód: [Vybrat]
ffmpeg -i -vf scale=iw/2:ih/2 -c rawvideo "$@" -f nut -
Kód: [Vybrat]
./input.sh | ./effect.sh "adelay=1000|1000" | ./play.sh
Název: Re:Řetězení příkazů rozsekaných po souborech
Přispěvatel: R2D2 16. 10. 2018, 21:08:52
2x protoze se to neda editovat. A neser
Jen nástřel: named pipes ?
Nemam cas to hledat
COPYPASTE
to už jsme četli, dokonce třikrát