![](/img/trans.png)
[英]Can iPhone stream MMS, RTSP (RTP, SDP), HTTP progressive streaming ,HTTP live streaming (M3U8) files
[英]iPhone HTTP Streaming .m3u8 and .ts files - how to create using ffmpeg
我正在尝试使用ffmpeg获取苹果验证的http媒体流,并且出现错误。 以下是一些错误示例:
警告:播放列表的内容类型为“ application / x-mpegurl”,但应为“ application / vnd.apple.mpegurl”,“ audio / x-mpegurl”或“ audio / mpegurl”之一。
警告:258个样本(88.966%)在轨道256(avc1)中没有时间戳。 4:us2-1.ts ~~~~~~~~
警告:媒体段持续时间超出预期持续时间47.733%(5.23对10.00秒,限制为20%)。 40:us2-19.ts ~~~~~~~~~
Average segment duration: 10.16 seconds
Average segment bitrate: 320.12 kbit/s
Average segment structural overhead: 175.89 kbit/s (54.94 %)
Video codec: avc1
Video resolution: 320x320 pixels
Video frame rate: 29.72, 29.78, 29.82, 30.00, 29.64 fps
Average video bitrate: 100.66 kbit/s
H.264 profile: Baseline
H.264 level: 3.0
Audio codec: aac
Audio sample rate: 48000 Hz
Average audio bitrate: 43.57 kbit/s
这是我一直提交的最终文件: http : //files.chesscomfiles.com/images_users/using/us2.m3u8
这是我用来创建此文件的文件: http : //files.chesscomfiles.com/images_users/using/using-computers-1.mp4
我尝试了以下命令,其中包括:
ffmpeg -i using-computers-1.mp4 -f mpegts -acodec libfaac -ar 48000 -ab 64k -s 320x320 -vcodec libx264 -vbsf h264_mp4toannexb -b 96k -flags + loop -cmp + chroma -partitions + parti4x4 + partp8x8 + partb8x8 -subq 5-网格1 -refs 1-编码器0 -me_range 16 -keyint_min 2 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq'blurCplx ^(1-qComp)'-qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4-级别30 -g 30 -async 2 us2.ts
ffmpeg -i using-computers-1.mp4 -f mpegts -acodec libfaac -ar 48000 -ab 64k -s 320x320 -vcodec libx264 -vbsf h264_mp4toannexb -b 96k -flags + loop -cmp + chroma -partitions + parti4x4 + partp8x8 + partb8x8 -subq 5-网格1 -refs 1-编码器0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k-最大96k -bufsize 96k -rc_eq'blurCplx ^(1-qComp)'-qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4-级别30 -g 30 -async 2 us1.ts
ffmpeg -i using-computers-1.mp4 -vbsf h264_mp4toannexb -acodec复制-vcodec复制-f mpegts output.ts
如果有人可以帮助我找出我应该运行的ffmpeg命令,我将非常感激!
关于第一个警告:
警告:播放列表的内容类型为“ application / x-mpegurl”,但应为“ application / vnd.apple.mpegurl”,“ audio / x-mpegurl”或“ audio / mpegurl”之一。
可能来自服务器设置。 请遵循此离子炮的第4步中的说明:
准备HTTP服务器上传一组代表流的文件和一个流定义文件(ts和m3u8)。 这些文件可以在此时上传到Web服务器,但是还需要采取另一个重要步骤,以确保文件可以正确下载并设置mime类型。 对于流内容,有两种重要的MIME类型:
.m3u8应用程序/ x-mpegURL
.ts video / MP2T
如果您使用的是Apache,则希望将以下内容添加到httpd.conf文件中:
AddType应用程序/ x-mpegURL .m3u8
AddType视频/ MP2T .ts
如果您使用的是lighttpd,则需要将其放入配置文件中(如果定义了其他mime类型,请确保仅添加它们而不设置它们):
mimetype.assign =(“ .m3u8” =>“ application / x-mpegURL”,“ .ts” =>“ video / MP2T”)
关于第三个警告:
警告:媒体段持续时间超出预期持续时间47.733%(5.23对10.00秒,限制为20%)。 40:us2-19.ts ~~~~~~~~~
如果某个片段的持续时间与播放列表(m3u8)中该片段列出的持续时间不同,则通常会发生这种情况。 例如,下面的播放列表有一个片段,并由播放列表列出为10秒。 如果此段的实际持续时间相差太大(超过20%),则验证者会抱怨。
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10,
med0.ts
#EXT-X-ENDLIST
通常,播放列表中的最后一个片段与目标片段会有所不同,因此可以忽略此警告。
而且,作为一般规则,这些“警告”消息可以忽略,但是“错误”消息需要认真对待。
但是,第二个警告看起来更严重,并且可能导致苹果公司的拒绝。 这可能是您的细分器命令(您是否正在使用mediastreamsegmenter?)。
另外,我没有使用“ -vbsf h264_mp4toannexb”。 而且,我正在使用“ -async 50”。
顺便说一句,指向您的播放列表的链接无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.