我不熟悉 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
Run Code Online (Sandbox Code Playgroud)
我想知道在此代码中需要修改哪些内容,以确保从原始文件复制所有字幕,并将所有可用音轨转换为 eac3 并添加到 output.mp4 文件中。对于字幕复制,我尝试了 -map 但无法让它工作。谢谢您的帮助!
你只需要一个ffmpeg命令:
ffmpeg -i input.mkv -map 0 -c:v copy -c:a eac3 -c:s copy output.mkv
Run Code Online (Sandbox Code Playgroud)
-map 0选择所有流。否则,每种流类型仅选择一个流。有关 的更多信息,请参阅FFmpeg Wiki:地图-map。-c:v 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"
Run Code Online (Sandbox Code Playgroud)
如果您想转换整个目录,请参阅如何使用 ffmpeg 转换整个目录?
| 归档时间: |
|
| 查看次数: |
7539 次 |
| 最近记录: |