gpt4 book ai didi

BASH 删除行中的第一个字母 (ffmpeg)

转载 作者:行者123 更新时间:2023-12-04 22:55:01 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Execute "ffmpeg" command in a loop [duplicate]

(3 个回答)



Bash while loop wait until task has completed

(4 个回答)



ffmpeg hangs when run in background

(3 个回答)



Incorporating ffmpeg in a bash script

(1 个回答)


2年前关闭。




输入:

# cat list
video1.mp4
video2.mp4
video3.mp4
video4.mp4

我的脚本:
#!/bin/bash

while IFS= read -r line || [[ -n "$line" ]]; do
echo $line
ffmpeg -i $line -c copy -bsf:v h264_mp4toannexb -f mpegts $line.ts
echo $line

done < "./list";

rm *.ts

每第二次迭代,bash 读取“ideo2.mp4”而不是“video2.mp4”或“ideo4.mp4”而不是“video4.mp4”

全输出
+ IFS=
+ read -r line
+ echo video1.mp4
video1.mp4
+ ffmpeg -i video1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts video1.mp4.ts
...
+ echo video1.mp4
video1.mp4
+ IFS=
+ read -r line
+ echo ideo2.mp4
ideo2.mp4
+ ffmpeg -i ideo2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts ideo2.mp4.ts
...
ideo2.mp4: No such file or directory
+ echo ideo2.mp4
ideo2.mp4
+ IFS=
+ read -r line
+ echo video3.mp4
video3.mp4
+ ffmpeg -i video3.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts video3.mp4.ts
...
+ echo video3.mp4
video3.mp4
+ IFS=
+ read -r line
+ echo ideo4.mp4
ideo4.mp4
+ ffmpeg -i ideo4.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts ideo4.mp4.ts
...
ideo4.mp4: No such file or directory
+ echo ideo4.mp4
ideo4.mp4

当我评论“ffmpg ...”行时,一切正常。
在本地 Ubuntu (bash 4.4.20(1)-release) 和 VPS (debian) (bash 4.4.12(1)) 上进行测试
到底是怎么回事?

最佳答案

When I comment line "ffmpg..." everything works fine.



您正在传递 ./list 的内容作为整个循环的标准输入,这意味着循环中的所有命令都可以从该标准输入中读取。

我没用过 ffmpeg ,但可能出于某种原因它正在从标准输入中读取一个字节。如果添加 < /dev/nullffmpeg命令(因此它有自己的空标准输入,而不是从 shell 继承),它将无法与循环其余部分使用的标准输入混淆。

顺便说一句,你的引用是错误的。无需报价 ./list (因为它没有特殊字符或扩展名),相比之下,您应该引用 $line无论它出现在哪里(因为添加引号更容易,并且养成在有扩展时总是添加引号的习惯,而不是每次都向自己证明在给定情况下永远不需要引号)。所以:
ffmpeg -i "$line" -c copy -bsf:v h264_mp4toannexb -f mpegts "$line.ts" < /dev/null

关于BASH 删除行中的第一个字母 (ffmpeg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60766097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com