我在shell中运行此语句
for file in /path/to/files/*.mp4; do ffprobe -show_frames $file | grep "pkt_size" > ${file}.txt
完成
如果我能得到这些信息,那将是很棒的;
答案 0 :(得分:1)
我已经在another answer向您展示了如何迭代所有文件并附加结果。这是使用 @LordNeckbeard &#39> bash
命令计算一个文件ffprobe
中的内容的方法。
你的作业是修改和整合两个答案。
#!/bin/bash
file=/path/to/file.mp4
if [ ! -f $file ]; then
echo Error: File not found
exit 1
fi
pkt_sizes=$(ffprobe -show_entries frame=pkt_size -of default=noprint_wrappers=1:nokey=1 -i $file -loglevel 0)
function print_sum {
#use `bc` for floating point operations
sum=$(echo "scale=${precision};${sum}/100" | bc -l)
echo "SUM("$start","$i")="$sum
}
i=1
start=1
sum=0
precision=3
#compute/print sum every 50 packets
for size in $pkt_sizes; do
(( sum+= size ))
if (( $i % 50 == 0 )); then
print_sum
sum=0
start=$(( i + 1 ))
fi
(( i++ ))
done;
#sum last packets (n < 50)
if (( "$start" < "$i" )); then
(( i-- ))
print_sum
fi
这足以让您开始使用shell算法,因此请参阅文档以获取更多问题。