菜鸟教程小白 发表于 2022-12-12 09:32:05

iphone - ios http直播黑屏


                                            <p><p>在我的 ios 应用程序中,我尝试使用 http 实时流播放视频。播放进行得很顺利,直到我决定使用洗涤器并跳到尚未缓冲的某个点。从那一刻起,音频继续播放,但视频变黑。</p>

<p>我已使用以下命令转换了我的 .MP4 视频:</p>

<pre><code>avconv -y -i video.mp4 -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s 640x480 -vcodec libx264 -b 64k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 7 -trellis 0 -refs 0 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 64k -bufsize 64k -rc_eq &#39;blurCplx^(1-qComp)&#39; -qcomp 0.6 -qmin 30 -qmax 51 -qdiff 4 -level 30 -aspect 640:480 -g 30 -async 2 sample_64.ts
</code></pre>

<p>我使用多种比特率(64、150、240、440 和 640)进行此操作,并创建了一个包含不同流的 <code>.m3u8</code>。转换后,我使用 <code>mediafilesegmenter</code> 将视频分割成每 10 秒的片段。</p>

<p>擦洗后在输出窗口中出现以下内容:</p>

<pre><code>2013-03-08 17:30:21.827 Geschiedenis Trainer Autoplay: Disabling autoplay for pause
2013-03-08 17:30:21.827 Geschiedenis Trainer Autoplay: Disabling autoplay
2013-03-08 17:30:21.977 Geschiedenis Trainer Autoplay: _streamUnlikelyToKeepUp: 1 -&gt; 0
2013-03-08 17:30:21.978 Geschiedenis Trainer Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
2013-03-08 17:30:21.978 Geschiedenis Trainer Autoplay: _streamRanDry: 0 -&gt; 1
2013-03-08 17:30:21.980 Geschiedenis Trainer Autoplay: Took background task assertion (32) for playback stall
2013-03-08 17:30:21.981 Geschiedenis Trainer Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
2013-03-08 17:30:22.634 Geschiedenis Trainer Autoplay: _streamUnlikelyToKeepUp: 0 -&gt; 0
2013-03-08 17:30:22.634 Geschiedenis Trainer Autoplay: _streamRanDry: 0 -&gt; 1
2013-03-08 17:30:22.667 Geschiedenis Trainer Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
2013-03-08 17:30:22.769 Geschiedenis Trainer Autoplay: Ending background task assertion (32) for playback stall
</code></pre>

<p>我的视频播放器的代码:</p>

<pre><code>self.streamPlayer = [ initWithContentURL:movieURL];
;
;
</code></pre>

<p>跳到已经缓冲的点时不会出现这个问题。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>问题在于我的视频转换。我使用的是过时版本的 <code>avconv</code>/<code>ffmpeg</code>。我将 ffmpeg 更新到最新版本(1.1)并解决了问题。</p>

<p>转换视频后,我使用苹果的 <code>mediafilesegmenter</code> 将视频分成 10 秒的片段。在更新 ffmpeg 之前,它产生了一个错误:<code>segment does not contain sync frame</code> for each segment。更新 ffmpeg 后,此错误消失了,流媒体问题也消失了。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - ios http直播黑屏,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15299098/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15299098/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - ios http直播黑屏