在 bash 脚本中使用 ffmpeg 将视频数据打印到 stdout

在 bash 脚本中使用 ffmpeg 将视频数据打印到 stdout

我正在编写一个 bash 脚本来转换一些视频,
问题是当我ffmpeg直接在终端中运行时,它可以正确转换视频,但是当我在 bash 脚本中使用它时,它会在 stdout 中打印大量数据(例如视频文件的转储)!!!

...

00002000  46 43 11 99 fa e5 cf 2e 40 15 61 6e a3 07 46 f8 [email protected].
00002010  48 33 85 8c 0c de 1b 27 f3 08 b5 e3 31 13 67 93 H3.....'....1.g.
00002020  3a e0 d1 8d d3 be 82 90 a6 19 1b 20 d1 8a ce 06 :.......... ....
00002030  38 4c 14 c2 1e cc 13 23 3b 93 81 e9 16 8a 1e c0 8L.....#;.......
00002040  66 32 31 fc 62 7f a6 34 e0 d9 a9 1b 32 b9 02 64 f21.b..4....2..d
00002050  ce 39 ef 8d a8 e8 64 37 6d e7 c0 28 71 23 ae 52 .9....d7m..(q#.R
00002060  8e 86 4c 95 cf 69 aa 7d 86 6f 18 68 9e 2f 38 33 ..L..i.}.o.h./83
00002070  99 33 c1 8e 98 38 36 68 fe 9a 0a 7f 74 9e 76 71 .3...86h....t.vq
00002080  73 23 bb c1 e0 cf ea 54 c2 37 22 36 33 51 c1 2a s#.....T.7"63Q.*
00002090  8f 90 df ac 66 27 34 36 16 85 32 fe c8 6f 0a 86 ....f'46..2..o..
000020a0  72 ab 8b 9e 1e 7d 9e 1b 34 4c 31 87 b7 ad 0c ff r....}..4L1.....
000020b0  c4 fb e2 6f f2 90 80 b1 98 20 fa f9 76 d2 86 24 ...o..... ..v..$
000020c0  1a bb b6 fe 47 b2 12 85 30 63 e5 d2 66 f5 31 36 ....G...0c..f.16
000020d0  35 b5 f2 21 27 70 09 11 8a 8e 3c 9d b9 9d 36 a7 5..!'p....<...6.
000020e0  5b 5c d1 d0 a7 e0 17 83 36 5f d8 d0 8f 73 90 82 [\......6_...s..
000020f0  15 0d 87 55 0e 0d 20 ad 38 52 b6 e4 3c 94 54 b4 ...U.. .8R..<.T.
00002100  f0 07 85 1c a1 d6 b0 27 04 97 bd 0a 6e 01 62 15 .......'....n.b.
00002110  80 b3 27 1c c4 80 72 7b 9c 61 c2 2e a8 e9 27 85 ..'...r{.a....'.
00002120  ae 10 67 32 76 99 19 df bf b6 49 28 8f 71 3c f5 ..g2v.....I(.q<.
00002130  c5 29 39 a5 84 92 73 8c 35 ea 90 af 85 5a ff 56 .)9...s.5....Z.V
00002140  e2 fe 9a d6 27 52 05 f6 7b 35 29 2b 2d b4 54 b9 ....'R..{5)+-.T.
00002150  c9 87 53 e4 bd 89 6d a3 34 c8 f5 20 a6 77 ac e5 ..S...m.4.. .w..
00002160  88 05 d8 84 75 58 59 31 10 df ba 6c 0c 40 54 b0 ....uXY1...l.@T.
00002170  5a 5a 23 90 f1 b4 58 33 1c 22 87 d6 d7 85 0a 47 ZZ#...X3.".....G
00002180  08 9d b7 79 41 8d 0d 24 74 d6 37 84 a1 48 e6 f8 ...yA..$t.7..H..
00002190  19 f6 90 bb 2d f2 39 80 c3 50 a7 8d 06 14 c6 93 ....-.9..P......
000021a0  bb d5 66 5a 17 0c a7 32 63 29 c9 45 e3 30 ce 18 ..fZ...2c).E.0..
000021b0  f0 63 a7 a3 61 65 e6 06 c2 a0 a6 20 8e f0 f7 a7 .c..ae..... ....
000021c0  18 34 01 51 35 68 db b8 d8 58 33 05 f3 77 a0 39 .4.Q5h...X3..w.9
000021d0  2e 90 6b cb b2 a9 6d 12 ce ad 31 c5 23 20 a6 41 ..k...m...1.# .A
000021e0  76 5c 6c 87 d7 f1 09 a9 59 50 29 f2 20 98 ef e4 v\l.....YP). ...
000021f0  66 c6 70 84 67 06 9a 9c 8d fe ce 31 08 1b fc ee f.p.g......1....
00002200  22 87 af e6 0c 06 64 c5 a7 7a 47 d4 83 41 a0 51 ".....d..zG..A.Q
00002210  52 43 39 d0 b1 73 e3 58 64 64 72 22 2e f9 b2 17 RC9..s.Xddr"....
00002220  2c a6 d5 a3 a6 c2 9c ce 24 82 63 29 19 34 e0 c9 ,.......$.c).4..
00002230  47 77 89 d1 7d 3b d3 6a 81 8c 88 65 a7 31 ee 72 Gw..};.j...e.1.r
00002240  29 1a 8a 0f b8 77 9f d3 83 1b bc 2a de f6 1a 4d )....w.....*...M
00002250  f6 14 c8 31 0a 45 3c 23 18 03 8d f4 f1 cd 6e 40 ...1.E<#......n@
00002260  b5                                              .
[libx264 @ 0x114cfe0] frame= 501 QP=25.80 NAL=0 Slice:B Poc:14  I:25   P:404  SKIP:910  size=1116 bytes
[libx264 @ 0x114cfe0] frame= 502 QP=19.72 NAL=2 Slice:P Poc:18  I:22   P:539  SKIP:789  size=3039 bytes
[libx264 @ 0x114cfe0] frame= 503 QP=18.86 NAL=2 Slice:P Poc:26  I:36   P:585  SKIP:729  size=4393 bytes
[libx264 @ 0x114cfe0] frame= 504 QP=24.66 NAL=2 Slice:B Poc:22  I:0    P:399  SKIP:931  size=1494 bytes
[libx264 @ 0x114cfe0] frame= 505 QP=27.85 NAL=0 Slice:B Poc:20  I:0    P:259  SKIP:1086 size=679 bytes
[libx264 @ 0x114cfe0] frame= 506 QP=27.73 NAL=0 Slice:B Poc:24  I:0    P:283  SKIP:1058 size=693 bytes
[libx264 @ 0x114cfe0] frame= 507 QP=19.05 NAL=2 Slice:P Poc:34  I:35   P:431  SKIP:884  size=4321 bytes
[libx264 @ 0x114cfe0] frame= 508 QP=25.88 NAL=2 Slice:B Poc:30  I:2    P:345  SKIP:985  size=1276 bytes
[libx264 @ 0x114cfe0] frame= 509 QP=28.23 NAL=0 Slice:B Poc:28  I:0    P:225  SKIP:1118 size=616 byt

 ...

我尝试像这样重定向输出:

ffmpeg -i "$input" -strict -2 "$out" 2>&1 /dev/null

但我得到了

[NULL @ 0x18ae440] Unable to find a suitable output format for '/dev/null'
/dev/null: Invalid argument

有什么问题?如何ffmpeg在 Bash 脚本中使用?

答案1

您的命令重定向不起作用,您将标准错误重定向到标准输出,但没有将其重定向到任何地方。

重定向所有输出的正确命令是:

ffmpeg -i "$input" -strict -2 "$out" > /dev/null 2>&1

相关内容