首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在Android上使用ExoPlayer或Mac上使用Quicktime播放摄像头上的MPEG-TS

不能在Android上使用ExoPlayer或Mac上使用Quicktime播放摄像头上的MPEG-TS
EN

Stack Overflow用户
提问于 2016-07-25 06:15:08
回答 1查看 781关注 0票数 0

我正在尝试使用FFmpeg将我的摄像头流到基于HttpLiveStreaming的安卓设备上。为了在安卓上播放MPEG-TS,我使用了ExoPlayer.

FFmpeg流命令:ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test

当我使用VLC播放MPEG-TS时,一切都很好.然而,我未能使用安卓上的ExoPlayer或Mac上的Quicktime(Safari)播放。然后我试着找出原因。

我试图以同样的方式使用mp4来播放FFmpeg视频。例如:ffmpeg -re -i test.mp4 -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test

我可以使用ExoPlayer和Quicktime来播放它。

,我发现这两种情况之间唯一的区别是,网络摄像头的捕获格式是YUY2,而mp4视频是YUV420,他们使用的是不同的H264编码器。我想,H264解码器YUY2和YUV420是不一样的。

我不确定我的推断是否正确,这个问题的唯一解决方案是在流之前将YUY2转换为YUV420。

我希望使用Mac的人可以尝试用和我一样的方式播放Facetime摄像头,看看它是否可以在Safari中播放。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-25 07:39:17

最后,我找到了解决办法。正如我推断的那样,我需要在YUY2编码和流之前将H264转换为YUV420。所以命令应该是ffmpeg -f avfoundation -pix_fmt uyvy422 -video_size 1280x720 -framerate 30 -i "0" -pix_fmt yuv420p -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test

多亏了this

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

https://stackoverflow.com/questions/38560840

复制
相关文章

相似问题

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