gpt4 book ai didi

ffmpeg - 如何将所有音轨转换为 eac3 并保留所有字幕?

转载 作者:行者123 更新时间:2023-12-04 22:46:16 26 4
gpt4 key购买 nike

我不熟悉 ffmpeg,但遇到过这个脚本,它接受文件并使用 eac3 音频创建输出。

#!/bin/sh

echo "Dolby Digital Plus Muxer"
echo "Developed by @kdcloudy, not affiliated with Dolby Laboratories"
echo "Enter the file name to be converted: "
read filepath
if [! -d $filepath]
then
exit $err
fi

ffmpeg -i $filepath -vn ddp.eac3
ffmpeg -i $filepath -i ddp.eac3 -vcodec copy -c:a eac3 -map 0:s -map 0:v:0 -map 1:a:0 output.mp4
rm ddp.eac3

我想知道要修改此代码中的哪些内容,以确保从原始文件复制所有字幕,并将所有可用音轨转换为 eac3 并添加到 output.mp4 文件中。对于字幕复制,我尝试了 -map 但无法让它工作。感谢您的帮助!

最佳答案

您只需要一个ffmpeg命令:

ffmpeg -i input.mkv -map 0 -c:v copy -c:a eac3 -c:s copy output.mkv
  • -map 0 选择所有流。否则,每种流类型仅选择一个流。请参阅FFmpeg Wiki: Map了解有关 -map 的更多信息。
  • -c:v 复制 Stream copy所有视频。
  • -c:a eac3 将所有音频编码为 E-AC-3。
  • -c:s copy 流复制所有字幕。

为了兼容性,假设输入和输出都是 Matroska (.mkv)。

那个脚本不太好。这是一个更干净、更简单的版本(我认为这并不需要脚本):

#!/bin/bash
# Usage: ./eac3 input.mkv output.mkv

ffmpeg -i "$1" -map 0 -c:v copy -c:a eac3 -c:s copy "$2"

如果您想转换整个目录,请参阅 How do you convert an entire directory with ffmpeg?

关于ffmpeg - 如何将所有音轨转换为 eac3 并保留所有字幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64187543/

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