gpt4 book ai didi

bash - 如何将一堆 m4a 文件拆分成 block 并用 ffmpeg 替换它们的元数据?

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

我通读了很多部分解决了我的问题的线程,并尝试编写一个脚本,将 .m4a 音频文件分成几部分并替换其元数据。

我没有设法在一行中实现这一点(也许你可以告诉我如何),但与这两个脚本非常接近。 (我将它们一分为二只是为了便于阅读和调试。)

#!/bin/bash
# cutaudio.sh

input=$1
output=$2
duration=$3

ffmpeg -i $input -map 0 -f segment -segment_time $duration -c copy "$output-%03d.m4a"

上面的脚本工作正常,并将文件分成提供长度的 block 。
#! /bin/bash
# stripmetadata.sh


input=$1

n="1"
for i in $input*; do
title="Part $n"
ffmpeg -i $i -map 0 -metadata title="$title" -c copy -y "$i"
n=$((n + 1))
done

该脚本实际上设法替换了元数据中的标题,但是文件也被剥离到第一秒。在第二个脚本之后,它们的大小都是 33,7 kb。我还是 ffmpeg 的新手,所以非常感谢您的帮助!

编辑:
这是生成的脚本,任何有兴趣的人:
https://github.com/adrifromhh/cutaudio
我用它来将下载的有声读物(从 youtube 或从 Audible 录制的)剪切成可用部分。

最佳答案

要扩展 oguzismail 的评论,您应该写入一个临时文件,然后覆盖原始 block 文件,例如,
for i in $input*; do
title="Part $n"
ffmpeg -i $i -map 0 -metadata title="$title" -c copy -y /tmp/tmp.m4a
mv -f /tmp/tmp.m4a "$i"
n=$((n + 1))
done

关于bash - 如何将一堆 m4a 文件拆分成 block 并用 ffmpeg 替换它们的元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510127/

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