如何播放带有字幕的纯音频文件mplayer?

如何播放带有字幕的纯音频文件mplayer?

mplayer播放纯音频文件时可以显示字幕吗?

我已经尝试过了:

mplayer filename.mp3 -sub filename.srt

但没有运气——它只是在发现没有视频时才创建视口。-vo x11也没有帮助。

我知道我可以将我的音频文件转换为视频文件,或者使用一些字幕编辑软件(例如 AegiSub)来播放我的文件;但是这两种方式对我来说都不方便,因为我有很多音频文件。

答案1

如何播放带有字幕的纯音频文件mplayer

如果您愿意灵活地使用图像作为存根并参与ffmpeg生成占位符,那么就可以做到。

  1. 使用以下命令创建一个空白文件ffmpeg

    ffmpeg -t 1500 -s 1024x768 -f rawvideo -pix_fmt rgb24 -r 25 -i /dev/zero silence.mpeg
    

    (通过ffmpeg-user

    -s可以是任意大小的窗口

    -t应该至少和你的音频一样长几秒钟后,字幕就会停止播放!

  2. 播放空白视频,同时指定您要真的想要播放和字幕使用-audiofile-sub,例如:

    mplayer silence.mpeg -sub subtitles.srt -audiofile audio.mp3
    
  3. (选修的)将生成的视频文件调整1.为红色、蓝色、图案或任何您想要的背景。

参见字幕的实际效果mplayer

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 使用率会明显升高。

相关内容