gpt4 book ai didi

在 VLC 中使用多个字幕流对视频进行编码以进行流式传输

转载 作者:行者123 更新时间:2023-12-04 23:25:57 24 4
gpt4 key购买 nike

我正在实现离线视频流服务,因此我们的用户可以在他们的计算机上拥有加密的视频,并且只能使用我们的流媒体应用程序打开它们。

所以我需要将一个新解密的视频文件直接流式传输到本地 VLC 客户端,这样我就不必将它保存在磁盘上。一个最小的工作示例是:

cat my_video.mp4 | vlc -

但这仅显示视频和音轨,没有字幕。

我想知道是否有一种方法可以对视频进行编码,以便可以使用 3 个音轨和 3 个字幕轨。
我也会接受一个答案,解释这是不可能的,为什么不。

更多详情如下:

我有 3 个音轨和 3 个字幕轨,我正在使用 FFMPEG。
(视频的原始格式为 mp4,采用 h264 编码)

目前,我能够制作可流式传输 .mp4文件, thanks to this answer , 并且还要制作 .ts将显示视频和 3 个音频选项但不显示字幕的文件。我正在使用的命令是这样的:
video_name=demo_0101.mp4
sub_name=demo_0101.srt
output=0101.mp4 # Or `.ts`

ffmpeg\
-i en_raw/$video_name -i pt_raw/$video_name -i es_raw/$video_name\
-i en_subs/$sub_name\
-i pt_subs/$sub_name\
-i es_subs/$sub_name\
-map 2:v\
-map 0:a:0 -map 1:a:0 -map 2:a:0\
-map 3:s -map 4:s -map 5:s\
-c:v libx264 -crf 22\
-movflags faststart\ # (This line is only necessary for .mp4)
-c:a:0 aac -c:a:1 aac -c:a:2 aac\
-c:s:0 mov_text -c:s:1 mov_text -c:s:2 mov_text\
$output

问题是:使用 .ts 无法识别字幕(根本不显示)格式和使用时 .mp4 VLC报错:

Unidentified codec: VLC could not identify the audio or video codec



请注意在不流式传输 .mp4 时版本适用于所有音频和字幕,即:
vlc my_video.mp4

如果有人想知道,我计划使用 VLC 选项从命令行选择要播放的字幕和音频: --audio-track 1 --sub-track 0
我希望有一个人可以帮助我。提前致谢。

最佳答案

我无法找到直接在视频上编码字幕的方法,这将是更可取的解决方案。但是,我找到了一个 VLC 命令,可以将字幕文件与流视频一起显示:

cat 0101.mp4 | vlc --sub-file en_subs/demo_0101.srt

这并不理想,原因有两个:
  • 它不适用于 .ts仅格式 .mp4 .
  • 这需要我将原始字幕文件保存在用户磁盘上。

  • 我不会将此解决方案标记为已接受的答案,因为如果可以直接使用我想知道的字幕流式传输视频,并且我也相信这样的答案将对碰巧阅读此页面的其他人有所帮助。

    关于在 VLC 中使用多个字幕流对视频进行编码以进行流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48128857/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com