android - 真正实时流式传输到 Android/iPhone

标签 android iphone windows ffmpeg video-streaming

我花了很长时间(过去一周)尝试这样做,但收效甚微。然而,我想要的似乎完全闻所未闻。到目前为止,我已经查看了可通过 google 获得的建议,其中包括将静态文件编码为多个不同格式的静态文件,创建一个播放列表,在 m3u8 文件中托管静态文件(随着流式传输继续添加到播放列表中的文件)。
我还看到了涉及 rtmp、rtsp 等的想法,由于它们不兼容,这些想法完全不可能。
理想情况下,我会有一个网页链接到流 (http://server/video.mp4) 和/或在网页中显示它(通过视频标签)。考虑到这一点,最可能的格式是 mp4 容器中的 h264+aac。

不幸的是,(可能是因为该文件没有持续时间元数据)它不起作用。我可以使用桌面播放器(例如 VLC)打开流并播放,但我的 iPhone 和 Android 都给出了各自的“无法播放”消息。

我不认为问题是由设备的流媒体能力引起的,因为我已经让流媒体广播服务器工作得很好(仅限 mp3)。

目前,我最接近的是在我的 win32 机器上使用以下设置:

FFMPEG 命令::ffmpeg -f dshow -i video="Logitech Webcam 200":audio="Microphone (Webcam 200)"-b:v 180k -bt 240k -vcodec libx264 -tune zerolatency -profile:v baseline -preset ultrafast - r 10 -strict -2 -acodec aac -ac 2 -ar 48000 -ab 32k -f flv "udp://127.0.0.1:1234"

VLC::从 udp://127.0.0.1:1234 流到 http://:8080/video.mp4 (无转码),基本上只是将 UDP 流转换为 http 可访问的流。

任何提示或建议都将受到热烈欢迎!

最佳答案

对不起,我试图理解你的问题。
看来您试图通过 http 从您的服务器在 android 和 iphone 上播放 mp4 对吗?

你有流媒体服务器吗?或者您只是想让手机从您的服务器中提取文件。

如果您没有,我建议您查看 darwin 流媒体服务器 (http://justdevelopment.blogspot.com/2009/10/video-streaming-with-android-phone.html)。
它将允许您将视频设置为使用每个设备所需的正确编码进行流式传输。

让我知道这是否有帮助

关于android - 真正实时流式传输到 Android/iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319763/

相关文章:

Android Fragment,返回而不重新创建/重新加载 Fragment

iphone - iOS静态框架和静态库

iphone - 单元格获取其前一个单元格的索引 - Tableview 中的 Collectionview

java - 在 Windows 命令行上,如何将 cat 的输出输入到 java main 方法中?

windows - Play 2 框架停止服务器

android - getChildCount() 返回错误的子级数

android翻译带变量的字符串

ios - Apple 拒绝了我的应用程序,因为它不包含允许用户从"file"应用程序中查看或选择项目的功能

c# - Monitor类是如何实现的?

java - Firebase/GeoQuery - 最大半径 IF 语句