首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >webm破折号编码..。正确的ffmpeg参数是什么?

webm破折号编码..。正确的ffmpeg参数是什么?
EN

Stack Overflow用户
提问于 2015-03-12 07:37:25
回答 2查看 7.7K关注 0票数 3

我很难把视频编码成符合破折号的格式。我要从.mp4到.webm

首先,我正在运行OS和ffmpeg 2.5.4。

下面是我在测试中使用的编码命令(我从这里获得了这些命令):

代码语言:javascript
运行
复制
ffmpeg -i IMG_0113.mp4 -c:v libvpx-vp9 -s 160x90 -b:v 25k -g 1 -tile-columns 4 -frame-parallel 1 -an -f webm -dash 1 video_160x90_25k.webm

ffmpeg -i IMG_0113.mp4 -c:v libvpx-vp9 -s 160x90 -b:v 50k -g 1 -tile-columns 4 -frame-parallel 1 -an -f webm -dash 1 video_160x90_50k.webm

ffmpeg -i IMG_0113.mp4 -vn -acodec libvorbis -ab 128k  -dash 1 audio_128k.webm

ffmpeg -f webm_dash_manifest -i video_160x90_25k.webm -f webm_dash_manifest -i video_160x90_50k.webm -f webm_dash_manifest -i audio_128k.webm -c copy -map 0 -map 1 -map 2 -f webm_dash_manifest -adaptation_sets "id=0,streams=0,1 id=1,streams=2" manifest.mpd

其次,问题不在我的服务器上,因为我已经从这里下载了示例,当从本地服务器服务时,它们在dash.js播放器上工作100%。

有人能帮我指出正确的方向吗?或者提供用于使输出格式正确的ffmpeg命令的示例。

谢谢迪恩。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-01 09:48:11

好的,开始,设法解决这个问题。希望这能给别人省点麻烦。

首先,,这是解决方案。

步骤1: (从视频中剥离音频,并创建单个音频文件)

代码语言:javascript
运行
复制
ffmpeg -i IMG_0113.mp4 -c:v libvpx -s 160x90 -threads 4 -b:v 25k -tile-columns 4 -frame-parallel 1 -an -keyint_min 30 -g 30 -f webm video_160x90_25k.webm

ffmpeg -i IMG_0113.mp4 -c:v libvpx -s 160x90 -threads 4 -b:v 50k -tile-columns 4 -frame-parallel 1 -an -keyint_min 30 -g 30 -f webm video_160x90_50k.webm

ffmpeg -i IMG_0113.mp4 -vn -acodec libvorbis -ab 128k audio_128k.webm

步骤2: (使用libwebm项目可在这里找到中的sample_muxer创建视频提示点)

代码语言:javascript
运行
复制
mkvmuxer_sample -i video_160x90_25k.webm -o video_160x90_25k_cued.webm

mkvmuxer_sample -i video_160x90_50k.webm -o video_160x90_50k_cued.webm

步骤3: (使用ffmpeg创建音频提示点)

代码语言:javascript
运行
复制
ffmpeg -i audio_128k.webm -vn -acodec libvorbis -ab 128k -dash 1 audio_128k_cued.webm

步骤4: (使用ffmpeg创建webm清单文件.mpd)

代码语言:javascript
运行
复制
ffmpeg -f webm_dash_manifest -i video_160x90_25k_cued.webm -f webm_dash_manifest -i video_160x90_50k_cued.webm -f webm_dash_manifest -i audio_128k_cued.webm -c copy -map 0 -map 1 -map 2 -f webm_dash_manifest -adaptation_sets "id=0,streams=0,1 id=1,streams=2" manifest.mpd

,其次,,这是解释。

ffmpeg (至少我的版本)没有正确地创建视频文件中的提示点(当添加-dash 1时)。我通过探测视频文件和了解webm文件格式(如果您想知道更多的话,阅读这篇文章)来确定这一点。

然后我偶然发现了来自读这一页读这一页,并决定看看它是否能更好地处理视频提示点-- ffmpeg没有正确的地方。呼呼,是的!

我注意到从ffmpeg提取的音频文件中的提示点(使用-dash 1 param)正在正确创建!

webm破折号清单的ffmpeg代也运行得很好!

为了播放这段视频,我发现shaka-player效果最好,但我无法使用它,因为我需要从cefpython容器中播放视频,而shaka-player没有在cefpython中包含的最新cef (铬嵌入式框架)上工作。

然后我用来自google的这个有用的网站写了我自己的播放器

不管怎么说,希望这能帮到别人

票数 17
EN

Stack Overflow用户

发布于 2018-07-31 12:39:14

我也有过类似的问题。当我用ffmpeg v3.4.2将mpeg2转换为vp9时,VLC播放器中的输出视频是不可见的(寻找需要很长时间)。当我尝试ffmpeg v4.0.2时,视频在VLC播放器中是可查找的。看来,它在ffmpeg v4.0.2中是固定的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29004197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档