audio - FFMPEG 同时编码音频和强制字幕?

标签 audio video ffmpeg subtitle

我正在使用 ffmpeg windows 的最新静态版本。

我的输入文件(.mkv)是:

[video] - 1080, V_MPEG4/ISO/AVC, 14.6 Mbps, ID#0
[audio] - DTS 5.1, 1510 Kbps, ID#1
[subtitles] - S_TEXT/ASS Lossless English, ID#14

我的问题是:我转换了音频,以便我的目标播放器 XB1 控制台 ( media support faq ) 能够播放音频/视频。然而,有时它很难听到或部分可能是外语,所以我想在转换音频的同时强制英文字幕进入混音。

目前对于音频,我使用以下命令
ffmpeg -i input.mkv -codec copy -acodec ac3 output.mkv

我可以以某种方式绑定(bind)强制字幕(到视频上),以节省获取 output.mkv 并尝试强制打开字幕的额外过程吗?

编辑:我尝试使用以下命令提取字幕以便能够编辑它们
ffmpeg -i Movie.mkv -map 0:s:14 subs.srt

但是我得到了错误:Stream map '0:s:14' matches no streams
Edit2:尝试提取字幕并成功
ffmpeg -i input.mkv -map 0:14 -c copy subtitles.ass

但仍然希望强制字幕,尽管如此!

另外 - 这个问题的一点好处 - 我可以以某种方式提取 .ass文件并对其进行编辑以仅生成外国部分的字幕 - 所以英语音频在电影期间没有字幕,但外国音频确实有字幕?

干杯

编辑3:

当我尝试同时使用这两个命令时(我之前提到的音频转换器和 ffmpeg wiki 中的一个)
ffmpeg -i input.mkv -codec copy -acodec ac3 -vf "ass=subs.ass" output.mkv

我从 ffmpeg 收到以下错误,
Filtergraph 'ass=subs.ass' was defined for video output stream 0:0 but codec copy was selected.
Filtering and streamcopy cannot be used together.

最佳答案

由于您的媒体播放器不支持字幕,因此必须将文本刻录到视频图像上。为此,使用

ffmpeg -i input.mkv -vf "ass=subs.ass" -c:v libx264 -crf 20 -c:a ac3 output.mkv

这将重新编码视频,因为正在添加文本。 CRF 值控制视频质量。较低的值会产生更好的质量但更大的文件。 18 到 28 是一个不错的尝试范围。

关于audio - FFMPEG 同时编码音频和强制字幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530605/

相关文章:

audio - FFmpeg concat 带水印和音频 "stream specifier in filtergraph description matches no streams."

firefox - Mozilla的音频

Android:Html 5 视频不会在 Activity 完成时停止

video - AVPlayer 第七次重新进入画面后无法显示

video - ffmpeg mp4 视频无法在旧电视中播放

ios - iOS,在iPad中没有录制声音,在模拟器中工作正常

iphone - iPhone,JQTouch和HTML5音频标签

audio - 如何保持音频和视频(GEM)同步?

visual-studio-2008 - 将 ffmpeg 连接到 Visual Studio 2008

FFMPEG:使用 lavfi 创建透明背景?