FFmpeg hevc codec_tag兼容问题

问题描述

最近同组同事遇到一个问题:FFmpeg拼接ts文件生成mp4时(demux -> mux,不编解码),在Android平台上可以播放,但是在mac(QuickTime Player)和iOS上无法播放。其中,FFmpeg版本为3.3,ts流包含的音频轨是lc aac,视频轨是hevc,如下所示:

// 视频流
Stream #0:0[0x101]: Video: hevc (Main) ([36][0][0][0] / 0x0024), yuv420p(tv), 720x1280, 250 tbr, 90k tbn, 90k tbc
// 音频流
Stream #0:1[0x102]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 100 kb/s

拼接的mp4基本信息如下所示,在mac上用QuickTime Player播放,会提示格式不兼容,但是用QQ影音和VLC是可以播放的。此外,在Android上通过MediaPlayer和自研播放器也都可以播放。

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'leon.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf57.71.100
  Duration: 00:02:04.42, start: 99.935011, bitrate: 173 kb/s
    Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv), 720x1280, 159 kb/s, SAR 1:1 DAR 9:16, 1.93 fps, 250 tbr, 90k tbn, 90k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 12 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

问题初步解决

问题出在哪里那?在全球最大同性交友网站上找到了端倪Encode H265 to hvc1 codec。 大意是:hev1 or hvc1是两种codec tag,表示mp4容器中hevc流的不同打包方式。Quicktime Player和iOS不再支持hev1 tag的mp4。 hev1 or hvc1只是hevc在mp4中的两种不同打包方式

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值