MP4文件将忽略VLC中的字幕设置


14

当使用单独的.SRT文件播放MKV电影(h264 / aac)时,VLC使我可以从菜单中完美地控制字幕的外观。

但是,在将MKV / SRT无损转换为带有内置字幕(“ mov_text”)的MP4之后,字幕将显示为小的Arial(?)字体,并且VLC设置对此没有影响。

我以为MP4文件可能包含一些有关如何显示优先字幕的信息,但是即使我从MP4文件中剥离了所有元数据,该情况也会发生。

这是VLC中的错误/功能吗?如何使其符合所有视频文件的可视字幕设置。

编辑:SRT示例

1
00:00:00,000 --> 00:00:07,000
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,

2
00:00:09,000 --> 00:00:12,000
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.

(etc.)

编辑:请参阅下面的FFMPEG输出

ffmpeg -y -i "in.mp4" -i "in.srt" -acodec copy -vcodec copy -scodec mov_text -absf aac_adtstoasc "out.mp4" ffmpeg version 2.8 Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version 7.0.0 (clang-700.0.72) configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-nonfree --enable-vda libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, mpegts, from 'in.mp4': Duration: 00:55:34.20, start: 10.099667, bitrate: 2441 kb/s Program 1 Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 162 kb/s Stream #0:2[0x102]: Data: timed_id3 (ID3 / 0x20334449) Input #1, srt, from 'in.srt': Duration: N/A, bitrate: N/A Stream #1:0: Subtitle: subrip Output #0, mp4, to 'out.mp4': Metadata: encoder : Lavf56.40.101 Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 162 kb/s Stream #0:2: Subtitle: mov_text ([8][0][0][0] / 0x0008) Metadata: encoder : Lavc56.60.100 mov_text Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native)) Press [q] to stop, [?] for help frame=83215 fps=3113 q=-1.0 Lsize= 958501kB time=00:55:34.08 bitrate=2355.1kbits/s video:891302kB audio:65022kB subtitle:18kB other streams:0kB global headers:0kB muxing overhead: 0.225788%


哪个OS和VLC版本?带有嵌入式SRT的MKV的行为也一样吗?
卡兰(Karan)2015年

OS X 10.10.3。VLC 2.2.1。将SRT嵌入MKV作品中。因此,它必须与MP4容器或mov_text字幕格式有关。(后者是MP4所必需的,并且似乎与MKV不兼容。)
2015年

您用什么来转换视频?我认为ffmpeg由于标签。您可以显示命令和完整的控制台输出吗?ffmpeg支持对mov_text中的某些样式进行正确的编码/解码(字体大小,字体颜色,粗体,斜体等)。我猜您的版本很旧,但是如果没有您的更多信息,目前无法确定。但是,我不确定VLC如何处理这些问题。
llogan

查看帖子中添加的新信息。

可以提供SRT文件吗?
llogan

Answers:


6

向VLC开发人员发布了该问题,他们声称此问题将在即将发布的3.0版本中修复。


将近两年后,此问题尚未解决。任何解决方法?
里卡多·桑切斯·塞兹

2
从来没听说过。VLC 3似乎一直存在。我觉得奇怪的是,这个问题推迟了几年才发布,但似乎从未发布过。我已经尝试过VLC 3 Beta,但发现它们有太多问题,无法定期使用。因此,我将所有SRT文件与主视频文件分开,直到出现奇迹为止。如果更多的人在VLC Bug跟踪器上跟进该问题,可能会有所帮助。trac.videolan.org/vlc/ticket/15627
forthrin

@forthrin您链接的票已于两年前关闭,因此我似乎无法对其添加任何内容。我不确定他们为什么认为它已经关闭。
Joshua Nurczyk

@JoshuaNurczyk:该问题据说已在VLC 3中解决,但VLC 3需要一年才能最终发布。
书信

1
我可以确认此错误已在VLC 3中修复
山本彰(Akira Yamamoto)

1

这绝对是MOV_Text / Mp4容器的问题,目前没有其他解决方案。

无损转换带有字幕的Mp4到MKV

我还发现,如果我提取MOV_Text SRT并手动添加,仍然会出现问题,但是如果我从互联网上下载了单独的SRT文件,则能够手动添加它们,然后VLC能够处理字体/大小等。等等。(我的意思是,如果您不想进行转换,则唯一的选择是下载单独的SRT文件,然后将其手动添加到VLC中)


1
当我注意到OP试图从MKV升级到Mp4时,我想分享一下,这不是VLC可以控制字体/大小等的Mp4嵌入式Subs解决方案ATM。您必须将外部Subs添加到MP4或转换为MKV
FreeSoftwareServers 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.