- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个网站来播放一些视频。对于每个视频,我将视频、音频和字幕提取到 3 个不同的文件夹中。碰巧一个视频有多个音轨和多个字幕。我做了很多研究,但我不知道如何将它们全部添加到 list 中。现在,我使用这个命令:
ffmpeg -f webm_dash_manifest \
-i video1.mp4 -f webm_dash_manifest \
-i video2.mp4 -f webm_dash_manifest \
-i audio1.webm -f webm_dash_manifest \
-i audio2.webm -f webm_dash_manifest \
-i subtitles.vtt \
-c copy -map 0 -map 1 -map 2 -map 3 \
-f webm_dash_manifest -adaptation_sets "id=0,streams=v id=1,streams=a" manifest.mpd
我的两个视频有不同的分辨率和比特率,但效果很好。但是我没有得到任何字幕,我的两个音轨被认为是一个具有两种不同比特率的相同音轨(就像视频一样)。我想我应该有很多 adaptation_sets,但我不知道如何创建它们。
如何以正确的方式创建 list ?
最佳答案
几天后,我找到了解决方案。
我的目标是将视频转换为非常适合流式传输的 mpeg-dash 内容。
我会将视频编码为 h264,将音频编码为 aac,将字幕编码为 webvtt。这是一个很好的浏览器兼容性设置。vp9 也非常好,但对我来说太长了。
所需工具:
假设我们有一个包含这些流的 1080p 视频文件“video.mkv”:
我提取视频流并将其转码为不同的分辨率和比特率:
ffmpeg -i video.mkv -an -sn -c:0 libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 5300k -maxrate 5300k -bufsize 2650k -vf 'scale=-1:1080' tmp/video/video-1080.mp4
ffmpeg -i video.mkv -an -sn -c:0 libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 2400k -maxrate 2400k -bufsize 1200k -vf 'scale=-1:720' tmp/video/video-720.mp4
ffmpeg -i video.mkv -an -sn -c:0 libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 600k -maxrate 600k -bufsize 300k -vf 'scale=-1:360' tmp/video/video-360.mp4
ffmpeg -i video.mkv -map 0:1 -ac 2 -ab 192k -vn -sn tmp/audio/audio-it.mp4
ffmpeg -i video.mkv -map 0:2 -ac 2 -ab 192k -vn -sn tmp/audio/audio-en.mp4
ffmpeg -i video.mkv -map 0:3 -vn -an tmp/subtitle/subtitle-it.vtt
ffmpeg -i video.mkv -map 0:4 -vn -an tmp/subtitle/subtitle-en.vtt
您可以使用“-loglevel warning”选项来查看更少的信息。
mp4fragment tmp/video/video-1080.mp4 tmp/video/f-video-1080.mp4
mp4fragment tmp/video/video-720.mp4 tmp/video/f-video-720.mp4
mp4fragment tmp/video/video-360.mp4 tmp/video/f-video-360.mp4
mp4fragment tmp/audio/audio-it.mp4 tmp/audio/f-audio-it.mp4
mp4fragment tmp/audio/audio-en.mp4 tmp/audio/f-audio-en.mp4
mp4dash --mpd-name=manifest.mpd tmp/video/f-video-1080.mp4 tmp/video/f-video-720.mp4 tmp/video/f-video-360.mp4 tmp/audio/f-audio-it.mp4 tmp/audio/f-audio-en.mp4 \[+format=webvtt,+language=it\]tmp/subtitle/subtitle-it.vtt \[+format=webvtt,+language=en\]tmp/subtitle/subtitle-en.vtt
您现在可以删除 tmp 文件夹
rm -rf tmp
(以及您的源文件,如果您不再需要它的话)
您现在拥有可以流式传输的 mpeg-dash 内容。您必须提供您的文件(允许 cors 并启用字节范围请求)。我使用 angular 和 rx-player 作为播放器。我可以切换语言、字幕,而且视频质量可以适应客户端的带宽!
关于ffmpeg - 使用 ffmpeg 将多个音轨和字幕添加到破折号 list (mpd),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59494814/
我正在学习WidgetMarqueeLabel课: #include "WidgetMarqueeLabel.h" #include #include WidgetMarqueeLabel::Wi
我需要使用 Graphviz DOT 打印大量图表。为了区分每个图对应的输入,我还希望每个图都有一个标题。有没有办法将它嵌入到图形的 DOT 表示中。 最佳答案 您可以使用 label为图表添加标题。
我用 jQuery 编写了一个简单的脚本,允许根据 .hover 触发器弹出和弹出标题。 问题是您必须将鼠标悬停在图像上,移回图像上,然后再次将鼠标悬停在图像上才能正常工作。 (你可以在这里明白我的意
我已经成功地将视频转换到 chromecast 现在我正在尝试添加对字幕的支持,这里我面临两个问题 当我使用 NanoHttpd 流式传输 vtt 文件时,chromecast 返回错误代码 2100
我想知道 HTML 选框是否允许在控件(或容器)的开头使用静态文本,以便当文本向左滑动时它会滑动传递文本? 例如。 我正在查看要静态对齐到左侧的日期,数据库中的文本将滑过它,然后从右侧重新出现。 HT
如何在ExoPlayer2上设置字幕?我试过这个 tu bild MergingMediaSource: SingleSampleMediaSource singleSampleSource
我正在使用 FFMPEG 使用如下命令刻录字幕: ffmpeg -i video.mp4 -vf "subtitles=subs.srt:force_style='Fontsize=24,Primar
我有一个输入文件,它基本上是一个 .ts 文件,其中包含 4 个 dvb 字幕流(嵌入其中)。我正在使用以下命令在输出视频中保留 dvb 字幕。 ffmpeg -i Input.ts -c:a cop
假设我想查找副标题中包含“法国总统选举”一词的视频列表。 我可以使用 YouTube API 做到这一点吗? 如果它甚至可以在人工生成和自动生成的字幕中搜索,那将是完美的。但是如果它可以搜索两种类型的
我正在尝试将 YouTube 视频嵌入 YouTube iframe。 视频有一个 yt:cc=on 标签,这意味着默认情况下会加载字幕。 (即使用户不想要,属性 cc_load_policy=1 也
我正在使用 ggplot2 来改进降水条形图。 这是我想要实现的可重现示例: library(ggplot2) library(gridExtra) secu <- seq(1, 16, by=2)
我正在尝试从外部 url 播放电影的字幕,但它不起作用,当我尝试添加本地存储的 vtt 文件时,它就起作用了。下面是代码 上面的代码不起作用。但是当我复制 vtt 的内容时它起作用了。 请
我有一个包含单元格的表格,其中只有在搜索了某些内容后才会出现副标题。这是 cellForRowAtIndexPath 的代码: - (UITableViewCell *)tableView:(UITa
不确定这是不是该问的地方,但我在其他地方运气不好,之前经常通过查看其他人在本网站上的问题和答案来设法找到问题的答案。 我最近安装了一个 WordPress 插件 (WP Subtitle),它允许我为
我正在使用 ActionBarSherlock 字幕并尝试使用样式更改字幕文本大小,但似乎不起作用。我对主题不太熟悉,所以..我该如何更改?? 提前致谢 最佳答案 @style/Widget
跑马灯动画不行,这是我做的。 它适用于第一个 TextView ,但不适用于第二个。我究竟做错了什么? 最佳答案 这对我
如何以编程方式获取正在播放的 YouTube 视频的字幕? 最初我尝试通过 YouTube API 离线进行, 但是 as it seems YouTube 禁止获取您不是所有者的视频的字幕。 现在我
由于 AVPlayer 渲染的隐藏式字幕有时会与其他 UI 组件重叠,我想在单独的 View 中渲染 cc。 我可以通过将 closedCaptionDisplayEnabled 设置为 NO 来关闭
这有点与 Does YouTube API forbid to download video captions if you are not it's owner? 重复的问题, Get YouTub
因此,我尝试使用默认的 chrome 发送器应用程序为 chromecast 设置隐藏式字幕,根据文档,这应该是可能的,as seen here 。我不明白为什么我的代码不起作用。它与提供的示例代码几
我是一名优秀的程序员,十分优秀!