html - FFMPEG mkv 到 mp4 的转换在 HTML5 播放器中缺少音频

标签 html audio video ffmpeg

我使用 ffmpeg 使用此命令行将 mkv 文件转换为 mp4:

ffmpeg -i input.mkv -c copy file-1.mp4

生成的 mp4 可以在 Linux Mint 的 Xplayer 上正常播放(视频和音频)。但是上传 file-1 后,播放时没有声音。所以我上传了另一个 mp4 file-2,我不需要转换,它可以毫无问题地播放视频和音频。所以无论 file-1 发生了什么,似乎都与我对 ffmpeg 的使用有关。

我使用的播放器叫做 afterglow。但是 HTML5 播放器 以相同的方式处理这两个文件:file-1 和 file-2

有谁知道为什么在线播放ffmpeg后的文件没有声音?是否有不同的转换命令可确保转换后的 mkv 文件 将由在线播放器播放声音?

最佳答案

我看到几个问题:

  1. 输入有 DTS 音频。虽然它在 MP4 中受支持,但我猜它不适用于 HTML5。您必须转换为 AAC。在-c copy后添加-c:a aac

  2. 您的 ffmpeg 很旧。 FFmpeg AAC 编码器改进了您的版本所缺少的。通过 downloading a recent version 避免任何其他潜在问题.

  3. 添加-movflags +faststart。这将在编码后移动文件中的一些信息,以便可以更快地开始播放;否则它必须在播放前下载整个视频。

示例命令:

ffmpeg -i input.mkv -c copy -c:a aac -movflags +faststart output.mp4

关于html - FFMPEG mkv 到 mp4 的转换在 HTML5 播放器中缺少音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456692/

相关文章:

php - 通过 API 上传到 YouTube 时为视频添加标题屏幕

android - 如何打开外部音乐播放器(例如Pulsar,Retro音乐播放器)并播放从 ListView 中选择的歌曲?

android - 如何在音频处理应用程序中正确恢复 MIC?

java - 在网络应用程序中记录当前用户

javascript - 使一个div填充整个页面的高度

javascript - 测试浏览器在 javascript 中播放 wav 文件的能力

c++ - OpenCV:H.264 编码视频的文件大小

c++ - 比 C++ 中的 OpenCV 库更快地获取总帧数和 FPS

html - 带有边框的 h2 中的文本溢出

javascript - Vue.js 无法使用语义 UI 下拉菜单