第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在bash管道中的ffmpeg

在bash管道中的ffmpeg

躍然一笑 2019-11-03 16:04:40
我有一個rmvb文件路徑列表,并且想要將此文件轉換為mp4文件。因此,我希望使用bash管道來處理它。該代碼是Convert() {    ffmpeg -i "$1" -vcodec mpeg4 -sameq -acodec aac -strict experimental "$1.mp4"}Convert_loop(){    while read line; do       Convert $line    done}cat list.txt | Convert_loop但是,它僅處理第一個文件,并且管道退出。那么,ffmpeg是否會影響bash管道?
查看完整描述

3 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

警告:我從來沒有用過ffmpeg,但與有關程序的其他問題的工作,看起來像ssh,ffmpeg從標準輸入讀取實際上并沒有使用它,所以在第一次調用Convert時消耗的文件列表的其余部分后read獲得的第一個線。嘗試這個


Convert() {

    ffmpeg -i "$1" -vcodec mpe4 -sameq -acodec aac \

           -strict experimental "$1.mp4" < /dev/null

}

這樣,ffmpeg就不會從用于read命令的標準輸入中“劫持”數(shù)據。



查看完整回答
反對 回復 2019-11-04
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

[...]


for i in `cat list.txt`

切勿使用以下語法:


for i in $(command); do ...; done # or

for i in `command`; do ...; done

此語法逐字讀取命令的輸出,而不是逐行讀取命令的輸出,這經常會導致意外的問題(例如,當行包含一些空格時,以及當您想讀取諸如項之類的行時)。


總會有一個更聰明的解決方案:


command|while read -r; do ...; done # better general case to read command output in a loop

while read -r; do ...; done <<< "$(command)" # alternative to the previous solution

while read -r; do ...; done < <(command) # another alternative to the previous solution

for i in $DIR/*; do ...; done # instead of "for i in $(ls $DIR); do ...; done

for i in {1..10}; do ...; done # instead of "for i in $(seq 1 10); do ...; done

for (( i=1 ; i<=10 ; i++ )); do ...; done # such that the previous command

while read -r; do ...; done < file # instead of "cat file|while read -r; do ...; done"

# dealing with xargs or find -exec sometimes...

# ...

我編寫了一門課程,其中包含有關此主題的更多詳細信息和重復出現(xiàn)的錯誤,但不幸的是,使用法語:)


要回答原始問題,您可以使用類似以下內容的內容:


Convert() {

    ffmpeg -i “$1” -vcodec mpe4 -sameq -acodec aac -strict experimental “$1.mp4”

}


Convert_loop(){

   while read -r; do

       Convert $REPLY

   done < $1

}


Convert_loop list.txt



查看完整回答
反對 回復 2019-11-04
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

吻!=)


convert() {

    ffmpeg -i "$1" \

           -vcodec mpe4 \

           -sameq -acodec aac \

           -strict experimental "${1%.*}.mp4"

}


while read line; do

    convert "$line"

done < list.txt



查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 328 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號