作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不熟悉 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/
我是一名优秀的程序员,十分优秀!