首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于超文本标记语言MediaSource流的ffmpeg编码mp4

用于超文本标记语言MediaSource流的ffmpeg编码mp4
EN

Stack Overflow用户
提问于 2019-08-05 04:28:46
回答 1查看 493关注 0票数 0

我曾尝试使用this example通过MediaSource“流式传输”包含多个部分的mp4视频。由于主机上传限制,文件大小不应超过20mb。

然而,我很难找到正确的编码器设置来让它工作。如果我在代码中使用示例文件,那么它们可以很好地工作,但我自己编码或“拆分”的所有内容都不起作用。

以下是文件的元数据(ffmpeg -i):

我要编码的文件:

代码语言:javascript
复制
Metadata:
major_brand     : mp42
minor_version   : 19529854
compatible_brands: mp42isom
creation_time   : 2017-01-23T17:09:58.000000Z
Duration: 00:04:46.65, start: 0.000000, bitrate: 3033 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
Metadata:
  creation_time   : 2017-01-23T17:09:58.000000Z
  handler_name    : Sound Media Handler
Stream #0:1(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 2836 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
  creation_time   : 2017-01-23T17:09:58.000000Z
  handler_name    : Video Media Handler
  encoder         : AVC Coding

其中一个工作文件(我需要的格式):

代码语言:javascript
复制
Metadata:
major_brand     : mp42
minor_version   : 1
compatible_brands: mp42avc1iso5
Duration: 00:01:00.19, start: 0.000000, bitrate: 734 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 65 kb/s (default)
Metadata:
  handler_name    : Bento4 Sound Handler
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 640x360, 612 kb/s, 23.96 fps, 24 tbr, 600 tbn, 1200 tbc (default)
Metadata:
  handler_name    : Bento4 Video Handler
Stream #0:2(eng): Data: none (rtp  / 0x20707472), 45 kb/s (default)
Metadata:
  handler_name    : Bento4 Hint Handler
Stream #0:3(eng): Data: none (rtp  / 0x20707472), 5 kb/s (default)
Metadata:
  handler_name    : Bento4 Hint Handler

我尝试使用的命令之一是:

代码语言:javascript
复制
ffmpeg -i inputvid.mp4 -vcodec libx264 -acodec aac -pix_fmt yuv420p -profile:v baseline -level 3 testvid.mp4

此外,为了将文件分成多个部分,我到目前为止一直使用"mp4box“:

代码语言:javascript
复制
mp4box -splits 19000 testvid.mp4

对于我需要的编码,合适的参数是什么?

对于拆分,mp4box可以吗?或者我也可以使用ffmpeg吗?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-08-06 10:42:35

使用chrome://media-internals/我能够计算出所需的编码,这显然是ISO BMFF。

经过进一步的研究,我想出了这个有效的编码命令:

代码语言:javascript
复制
ffmpeg -i .input.mp4 -vcodec libx264 -acodec aac -pix_fmt yuv420p -movflags empty_moov+default_base_moof+frag_keyframe -profile:v baseline output.mp4
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57350018

复制
相关文章

相似问题

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