我正在尝试完成从iPhone相机直播的任务。我做了一些研究,发现我可以使用.m3u8
个文件来播放实时视频,其中应包含。ts(Mpeg-2)
文件。
现在我在iPhone上的文件是.mp4
文件,它不能与.m3u8一起使用,所以我想我必须将.mp4
转换为.ts
,但我没有成功。
我发现可以转换ffmpeg lib中提到的视频this article here。我已成功导入ffmpeg
库但无法弄清楚我是如何使用它来转换视频的,因为我是第一次使用它。
另一件事apple documentation说
有许多硬件和软件编码器可以创建 实时传输MPEG-4视频和AAC音频的MPEG-2传输流 时间。
这里有什么意思?有没有其他方法我可以使用.mp4文件进行直播,而无需从iOS转换它们?
如果我不清楚,请告诉我,我可以提供更多信息。感谢任何建议。我想知道我在正确的道路上吗?
修改
我正在为我的问题添加更多信息,所以基本上我要问的是,我们可以使用以下命令将.mp4视频转换为.ts
ffmpeg -i file.mp4 -acodec libfaac -vcodec libx264 -an -map 0 -f segment -segment_time 10 -segment_list test.m3u8 -segment_format mpegts -vbsf h264_mp4toannexb -flags -global_header stream%05d.ts
如何使用ffmpeg库来执行此命令在iOS中执行的操作。
答案 0 :(得分:0)
您可以查看ffmpeg.c以查看ffmpeg从ffmpeg库中使用的内容。然而,这是一个相当复杂的文件。您可能想要重命名main()并将其编译为对象,然后您可以从代码中调用新的ffmpeg_main()函数。
答案 1 :(得分:0)
Apple设备仅适用于HLS,您需要将媒体文件从mp4转换为ts,并将元数据文件转换为m3u8。您可以使用gstreamer之类的拖缆将mp4转换为HLS格式,或者另一种方法是在飞行中进行转码,这非常慢。