IJKPlayer播放視頻在iOS部分機(jī)型黑屏原因分析

一.背景

1.問題視頻在iphone7p等機(jī)型上:視頻無法正常播放(黑屏),音頻正常播放即寒。

2.問題視頻在iphone XR機(jī)型上:音視頻均能正常播放堆缘。

二.斷點(diǎn)分析

1.問題視頻在iphone7p上創(chuàng)建VideoToolBox解碼器成功溜宽,解碼失斉鲂住(解碼中失敗IJKPlayer不能自動(dòng)切換FFmpeg軟解碼)故俐,視頻畫面無法正常播放分瘾。

解碼失敗錯(cuò)誤碼:kVTVideoDecoderBadDataErr = -12909胎围。

2.問題視頻在iphone XR上創(chuàng)建VideoToolBox解碼器失敗,IJKPlayer自動(dòng)切換FFmpeg軟解碼,軟解碼成功白魂,視頻畫面正常播放汽纤。

解碼器創(chuàng)建失敗錯(cuò)誤碼:kVTVideoDecoderMalfunctionErr = -12911

3.以上現(xiàn)象說明此視頻無法使用VideoToolBox硬解碼。

VideoToolBox為蘋果官方提供的編解碼庫福荸,使用GPU硬編解碼蕴坪。官方文檔對(duì)錯(cuò)誤碼未提供更詳細(xì)的信息。

三.格式分析

1.使用ffprobe分析問題視頻的碼流格式敬锐,包完整性等均未發(fā)現(xiàn)問題辞嗡。

2.使用ffprobe分析問題視頻與正常視頻格式,對(duì)比發(fā)現(xiàn)滞造,正常視頻為幀編碼,掃描方式為逐行掃描栋烤。問題視頻為場(chǎng)編碼谒养,掃描方式為隔行掃描。

逐行掃描視頻的表示方法為:720p明郭,1080p买窟,p是progressive“逐行”的縮寫。

隔行掃描視頻的表示方法為:720i薯定,1080i始绍,i是interlace“交錯(cuò)”的縮寫。

四.驗(yàn)證VideoToolBox是否支持場(chǎng)編碼

1.測(cè)試一:將幀編碼視頻轉(zhuǎn)碼為場(chǎng)編碼格式視頻(逐行轉(zhuǎn)隔行)话侄。
測(cè)試二:將問題視頻轉(zhuǎn)碼為幀編碼視頻(隔行轉(zhuǎn)逐行)亏推。

使用FFmpeg命令行:
逐行轉(zhuǎn)隔行:
ffmpeg -i input.mp4 -aspect 16:9 -c:v h264 -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 2000k -dc 9 -flags +ilme+ildct -alternate_scan 1 -top 0 output.mp4

隔行轉(zhuǎn)逐行:
ffmpeg -i input.mp4 -aspect 16:9 -c:v h264 -b:v 4000k -minrate 1000k -maxrate 2000k -bufsize 2000k -dc 9 -deinterlace output.mp4

2.轉(zhuǎn)碼后使用MediaInfo工具檢查是否轉(zhuǎn)碼成功。

逐行視頻在“掃描方式”處顯示“逐行掃描”或“progressive”年堆。

隔行視頻在“掃描方式”處顯示“MBAFF”或“interlace”等吞杭。“掃描順序”為“奇數(shù)場(chǎng)優(yōu)先”等(逐行掃描無奇偶場(chǎng)概念)变丧。

3.導(dǎo)入IJKPlayer驗(yàn)證芽狗,幀編碼(逐行掃描)視頻硬解碼成功。場(chǎng)編碼(隔行掃描)視頻解碼失敗痒蓬。

(后續(xù)會(huì)增加測(cè)試視頻樣本量童擎,確保驗(yàn)證的可靠性)

五.解決方案

1.iOS端解決方案:在VideoToolBox解碼器創(chuàng)建前判斷視頻為場(chǎng)編碼還是幀編碼,若為場(chǎng)編碼攻晒,則直接走硬解碼器創(chuàng)建失敗流程顾复,切換為FFmpeg軟解碼,避免出現(xiàn)硬解碼創(chuàng)建成功而解碼失敗的問題炎辨。

判斷方法:提取H264中的SPS序列參數(shù)集信息捕透。根據(jù)SPS的句法,通過frame_mbs_only_flagmb_adaptive_frame_field_flag乙嘀,field_pic_flag三個(gè)字段判斷末购。

WX20200424-170548@2x.png

2.服務(wù)端解決方案:將場(chǎng)編碼視頻轉(zhuǎn)碼為幀編碼。

實(shí)際上虎谢,如果是會(huì)議或培訓(xùn)等畫面內(nèi)容變動(dòng)不大的視頻盟榴,使用幀編碼更為合適,可有效去除空間冗余婴噩,畫面更清晰擎场。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市几莽,隨后出現(xiàn)的幾起案子迅办,更是在濱河造成了極大的恐慌,老刑警劉巖章蚣,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站欺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡纤垂,警方通過查閱死者的電腦和手機(jī)矾策,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峭沦,“玉大人贾虽,你說我怎么就攤上這事『鹩悖” “怎么了蓬豁?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)菇肃。 經(jīng)常有香客問我庆尘,道長(zhǎng),這世上最難降的妖魔是什么巷送? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任驶忌,我火速辦了婚禮,結(jié)果婚禮上笑跛,老公的妹妹穿的比我還像新娘付魔。我一直安慰自己,他們只是感情好飞蹂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布几苍。 她就那樣靜靜地躺著,像睡著了一般陈哑。 火紅的嫁衣襯著肌膚如雪妻坝。 梳的紋絲不亂的頭發(fā)上伸眶,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音刽宪,去河邊找鬼厘贼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛圣拄,可吹牛的內(nèi)容都是我干的嘴秸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼庇谆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岳掐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起饭耳,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤串述,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后寞肖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剖煌,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年逝淹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桶唐。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栅葡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尤泽,到底是詐尸還是另有隱情欣簇,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布坯约,位于F島的核電站熊咽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏闹丐。R本人自食惡果不足惜横殴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卿拴。 院中可真熱鬧衫仑,春花似錦、人聲如沸堕花。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缘挽。三九已至瞄崇,卻和暖如春呻粹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苏研。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工等浊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人楣富。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓凿掂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親纹蝴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庄萎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一. 概述 蘋果從iOS 8開始,開放了硬編碼和硬解碼的api塘安,所以糠涛,從iOS 8開始,需要解碼H.264視頻時(shí)兼犯,...
    金山視頻云閱讀 10,090評(píng)論 1 25
  • 隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展忍捡,移動(dòng)端播放視頻的需求如日中天,由此也催生了一批開源/閉源的播放器切黔,但是無論這個(gè)播放器功能...
    金山視頻云閱讀 46,286評(píng)論 28 170
  • 上一篇我們侃侃而談了下Android下的App音視頻開發(fā)雜談砸脊,我們從入手到深入再到實(shí)際項(xiàng)目的遇到的問題以及解決方案...
    耗子_wo閱讀 1,751評(píng)論 0 3
  • 引言H264編碼使用 VideoToolbox硬編碼錄制H264視頻 從iOS8開始,蘋果將VideoToolbo...
    泥孩兒0107閱讀 1,568評(píng)論 0 0
  • 第一性原理原是埃隆馬斯克所提出的纬霞,被硅谷追捧現(xiàn)在在國(guó)內(nèi)被追捧凌埂,但我認(rèn)為其實(shí)沒有必要神化,它只是一種思考的方式诗芜,這種...
    飛馬大定理閱讀 995評(píng)論 2 3