mplayer
播放纯音频文件时可以显示字幕吗?
我已经尝试过了:
mplayer filename.mp3 -sub filename.srt
但没有运气——它只是在发现没有视频时才创建视口。-vo x11
也没有帮助。
我知道我可以将我的音频文件转换为视频文件,或者使用一些字幕编辑软件(例如 AegiSub)来播放我的文件;但是这两种方式对我来说都不方便,因为我有很多音频文件。
答案1
如何播放带有字幕的纯音频文件mplayer
?
如果您愿意灵活地使用图像作为存根并参与ffmpeg
生成占位符,那么就可以做到。
使用以下命令创建一个空白文件
ffmpeg
:ffmpeg -t 1500 -s 1024x768 -f rawvideo -pix_fmt rgb24 -r 25 -i /dev/zero silence.mpeg
(通过
ffmpeg-user
)-s
可以是任意大小的窗口-t
应该至少和你的音频一样长几秒钟后,字幕就会停止播放!播放空白视频,同时指定您要真的想要播放和字幕使用
-audiofile
和-sub
,例如:mplayer silence.mpeg -sub subtitles.srt -audiofile audio.mp3
(选修的)将生成的视频文件调整
1.
为红色、蓝色、图案或任何您想要的背景。
参见字幕的实际效果mplayer
:
是的,我知道您无法听到 .gif 中的音频,但是它确实有效!
替代方案VLC
如果您愿意(或无法访问ffmpeg
),VLC
可以处理音频和字幕,例如:
vlc audio.file --sub-file subtitle_file.srt
但请注意必须选择一个可视化;因为字幕不会显示在专辑封面上。
或者您可以从界面上进行操作:
(归功于克里斯·扎布里斯基为了自由音乐档案中的前奏曲#4... 你无法在 gif 中听到它)
答案2
我已经完成了同样的任务乘用车过去不需要视频文件。使用:
mpv --no-audio-display --force-window --sub-file="<subfile>" "<inputfile>"
我为每首歌制作了简单的 SRT 字幕;每首歌有 3 到 4 行歌词,例如:
1
00:00:00,000 --> 00:00:00,000
Sample Text
Sample Text Here
Sample Text Here Again
显然,要更改显示时间的开始/停止时间。:) 至今,我的笔记本电脑上的卡拉 OK 效果很好。
答案3
如果您不需要任意图像,只需要纯黑色,那么就无需创建虚拟视频文件:您只需重新解释 /dev/zero 即可:
mplayer /dev/zero -rawvideo format=rgb24:pal:fps=20 -demuxer rawvideo \
-audiofile filename.mp3 -sub filename.srt
通过移除format=rgb24:
背景甚至可以将其变为绿色 [#008800](同时节省一定比例的 CPU 使用率)。但是,实现任意颜色的背景有点问题。例如,可以通过管道提供颜色字节来实现:
perl -e 'for (;;) {syswrite(STDOUT, "\x3F\x3F\x3F\x00" x (1024*1024*2))}' | \
mplayer - -rawvideo format=rgb32:pal:fps=20 -demuxer rawvideo \
-audiofile filename.mp3 -sub filename.srt
,但这样就失去了倒带功能。
另一个选择是使用 geq 视频过滤器并在 YUV 空间中指定所需的颜色:
mplayer /dev/zero -rawvideo pal:fps=20 -demuxer rawvideo -vf geq=63:128:128 \
-audiofile filename.mp3 -sub filename.srt
这样,倒带功能就可以正常工作,但播放时的 CPU 使用率会明显升高。