-6ren">
gpt4 book ai didi

bash - ff探针 |展架 |数据包大小 |划分 |添加

转载 作者:行者123 更新时间:2023-12-04 23:35:00 24 4
gpt4 key购买 nike

我在 shell 中运行这个语句

for file in /path/to/files/*.mp4; do ffprobe -show_frames $file | grep "pkt_size" > ${file}.txt

完毕

如果我也能得到这些信息,那就太好了;
  • 当我用数字 grep pkt_size 行时,我希望脚本 - 除
    每个 pkt_size 数字为 100,
  • 然后在每 50 行之后添加(总和)pkt_size 行号。
  • 最佳答案

    我已经在 another answer 中向您展示过如何迭代所有文件并附加结果。这就是您在 bash 中计算内容的方式。对于一个文件,使用 @LordNeckbeard 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 算术,因此请参阅文档以了解更多问题。

    关于bash - ff探针 |展架 |数据包大小 |划分 |添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30103039/

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