視頻解碼:Android/iOS對(duì)H.265/VP9的支持

以前壓片玩,用的x264和AAC,到射手網(wǎng)找翻譯的比較好的srt/ssa字幕,矯正時(shí)間線,轉(zhuǎn)成UTF-16,封裝成mkv,然后PT或拷貝給朋友看,很方便。后來(lái)HTML5 video出現(xiàn)了,又去折騰MP4/WebM/Ogg,播放很方便,但沒(méi)有字幕。今天一查,才發(fā)現(xiàn)有了<track>元素可以做字幕,射手網(wǎng)也關(guān)閉了,真是時(shí)光飛逝。H.265和VP9出現(xiàn)了,又可以折騰了。

背景知識(shí):

  • .mp4/.mov/.webm/.ogg/.mkv 是文件后綴名,Windows系統(tǒng)需要這個(gè),Linux和macOS不太需要。
  • MP4/WebM/Ogg/mkv 是容器,里面含有視頻軌道和音頻軌道,甚至mkv還可以包含字幕和章節(jié)索引。每個(gè)軌道都是一個(gè)單獨(dú)的文件,最后打包變成一個(gè)文件,所以還可以解包變回多個(gè)文件。
  • 容器里的視頻和音頻是單獨(dú)制作的,可以使用多種編碼。MP4里的視頻常用的是H.264編碼,現(xiàn)在有了新一代的H.265編碼;MP4里的音頻常用的是AAC-LC、HE-AAC等編碼。WebM里的視頻以前是VP8編碼,現(xiàn)在有了新一代的VP9編碼,音頻是從Vorbis進(jìn)化到了Opus。就算是同一種編碼,也有不同廠商在做,比如H.264的編碼器有開(kāi)源的x264、蘋(píng)果的Quicktime、Nero Digital等等。編碼需要耗費(fèi)CPU和顯卡的性能和時(shí)間,而解碼輕松多了,如果顯卡可以“硬解”,那么CPU占用率很低,否則就是“軟解”,會(huì)占用很多CPU,在插電設(shè)備(比如電腦)上可行(有的同學(xué)為了追求畫(huà)質(zhì)而故意軟解),而在手機(jī)上要綜合考慮,因?yàn)闀?huì)耗電發(fā)熱。在圖片編碼領(lǐng)域,已經(jīng)發(fā)生了類(lèi)似的問(wèn)題:新一代圖片編碼只有Google在做,推出了WebP,Android支持,CPU占用率低,而iOS不支持,iPhone4的CPU占用率略高,但性能隨著摩爾定律提升,目前已經(jīng)不是問(wèn)題了。參考:《WebP 探尋之路- 騰訊ISUX - 社交用戶(hù)體驗(yàn)設(shè)計(jì)》

為什么有這么多編碼和容器?如果只有一個(gè),就不用選了,多簡(jiǎn)單。

因?yàn)槭袌?chǎng)是開(kāi)放的,競(jìng)爭(zhēng)帶來(lái)進(jìn)步,商業(yè)上一家獨(dú)大可能會(huì)影響創(chuàng)新和消費(fèi)者利益,請(qǐng)看滴滴和Uber合并之后發(fā)生的事……目前看來(lái),MP4和WebM會(huì)持續(xù)競(jìng)爭(zhēng)下去。

音頻視頻解碼技術(shù)的發(fā)展

視頻音頻編碼以前是3個(gè)陣營(yíng):

  • MP4(H.264 + HE-AAC)
  • WebM(VP8 + Vorbis)
  • Ogg(Theora + Vorbis)

現(xiàn)在新一代是2家:

  • MP4(H.265 + xHE-AAC)
  • WebM(VP9 + Opus)

新一代的技術(shù)進(jìn)步很大,相同畫(huà)質(zhì)時(shí),H.265比H.264小50%,VP9也比VP8小了50%,節(jié)約了空間和流量。如圖(H.265又稱(chēng)為HEVC,H.264又稱(chēng)為AVC。圖片來(lái)自中關(guān)村在線):

相同畫(huà)質(zhì)時(shí),H.265比H.264小50%,節(jié)約流量
五代音頻編解碼:mp3、AAC、HE-AAC、AAC-ELD、xHE-AAC
xHE-AAC是MPEG AAC家族系列編解碼器中的最新成員

技術(shù)選型思路

新技術(shù)優(yōu)勢(shì)巨大,在電腦上可以很快的用上,因?yàn)殚_(kāi)發(fā)軟件/Web網(wǎng)站可以方便的集成庫(kù)/插件,節(jié)約了帶寬,讓網(wǎng)站打開(kāi)快一點(diǎn),用戶(hù)體驗(yàn)更好,但不用的話也問(wèn)題不大,主要是節(jié)約廠商的服務(wù)器帶寬費(fèi)用,很有意義(淘寶把圖片切換成自適應(yīng)webp很多年了,而國(guó)內(nèi)別的網(wǎng)站幾乎沒(méi)有跟進(jìn)的……);喜歡下載視頻的話,可以節(jié)約硬盤(pán)空間。

在手機(jī)上,大部分用戶(hù)都很需要這種新技術(shù),因?yàn)榱髁亢軐氋F總是不夠用,而且蜂窩網(wǎng)絡(luò)環(huán)境不穩(wěn)定(比如地鐵時(shí)常在地下、商場(chǎng)內(nèi)),體積小加載速度快會(huì)讓用戶(hù)體驗(yàn)更好(在蜂窩網(wǎng)絡(luò)很差時(shí),只有微信能收到消息,而別的APP私信聊天都失敗……)。

作為開(kāi)發(fā)者,選型時(shí)要考慮多方面:

按耗電量選型

  • 插電設(shè)備(電腦、家用Pad、廣告屏):毫不猶豫的使用最新技術(shù),只要CPU不滿(mǎn)載,能流暢播放即可,不用考慮費(fèi)電問(wèn)題。
  • 移動(dòng)設(shè)備(手機(jī)、外勤Pad【比如招商銀行信用卡外勤OA】):在最新技術(shù)省流量 和 費(fèi)電 之間進(jìn)行評(píng)估。集成解碼庫(kù),觀察CPU占用率和幀數(shù),如果卡頓,則說(shuō)明目前還不能使用。

按軟件形態(tài)選型

  • 電腦軟件和PC Web:只使用最新技術(shù),如不支持,則集成庫(kù)/插件。
  • Mobile Web:同時(shí)使用最新技術(shù)和老技術(shù),同一視頻提供多個(gè)編碼,瀏覽器會(huì)自動(dòng)降級(jí)。注意:APP一般都需要分享,所以都會(huì)有Mobile Web。
  • APP:因?yàn)榭梢约蓭?kù),所以?xún)?yōu)先使用新技術(shù),結(jié)合其他策略進(jìn)行選型。

按產(chǎn)品策略選型

  • 大視頻APP(不可下載):一般不允許用戶(hù)保存視頻到系統(tǒng)相冊(cè)(版權(quán)問(wèn)題),可緩存到APP的私有數(shù)據(jù),可分享播放頁(yè)面(Web)給他人,而不會(huì)直接傳大文件給他人。所以?xún)?yōu)先使用最新技術(shù)。
  • 大視頻APP(可下載):如果允許用戶(hù)保存視頻到系統(tǒng)相冊(cè),則要按照各個(gè)操作系統(tǒng)版本提供不同的格式,比如Android 4.4及以上才可以播放VP9。由于大文件直接分享較困難,所以可假設(shè)用戶(hù)下載是為了自己看,不用考慮VP9視頻發(fā)送給iOS的好友如何播放。
  • 小視頻APP(可下載):看產(chǎn)品策略,如果是像表情包一樣,希望用戶(hù)廣泛傳播,則需要保存小視頻到系統(tǒng)相冊(cè),然后微信聊天時(shí)直接發(fā)給他人,則要考慮Android和iOS都能播放的格式。

常用電腦和Android的同學(xué)已經(jīng)習(xí)慣了瀏覽器里看到的任何東西都可以保存,比如圖片/PDF/壓縮包,而iOS不是這樣,幾乎什么都不能下載……所以需要注意的坑是:iOS瀏覽器或APP能否保存視頻到系統(tǒng)相冊(cè)?請(qǐng)看下面的調(diào)研。

Android 和 iOS 對(duì)音頻視頻的支持情況

測(cè)試環(huán)境

  • Android 6.0.1(錘子手機(jī)M1L)

  • 系統(tǒng)相冊(cè)

  • Chrome瀏覽器(AppleWebKit/537.36 Chrome/54.0.2840.68)

  • 微信 6.3.28 內(nèi)置瀏覽器——掃一掃和朋友圈內(nèi)嵌打開(kāi)網(wǎng)頁(yè)使用的瀏覽器(AppleWebKit/537.36 Chrome/37.0.0.0)

  • iOS 10.1.1(iPhone 7 Plus)

  • 系統(tǒng)相冊(cè)

  • 系統(tǒng)自帶Safari瀏覽器(AppleWebKit/602.2.14)

  • 微信 6.3.29 內(nèi)置瀏覽器(AppleWebKit/602.2.14)

測(cè)試結(jié)果

軟件\功能 保存圖片到系統(tǒng)相冊(cè) 保存視頻到系統(tǒng)相冊(cè)
Android Chrome 支持 支持
Android 微信瀏覽器 支持,還能“發(fā)送給朋友” 支持,彈出安裝QQ瀏覽器,跳轉(zhuǎn)到QQ瀏覽器里下載
Android 微信聊天 支持 支持,長(zhǎng)按可“保存視頻”
iOS Safari 支持 不支持
iOS 微信瀏覽器 支持,還能“發(fā)送給朋友” 不支持
iOS 微信聊天 支持 不支持,長(zhǎng)按可“轉(zhuǎn)發(fā)”和“收藏”
iOS 微云/有道云 支持 支持
iOS 微云里可以下載視頻到系統(tǒng)相冊(cè)
iOS 系統(tǒng)相冊(cè)里看到了下載的視頻
iOS 系統(tǒng)相冊(cè)可播放視頻
軟件\\功能 發(fā)送本地視頻給朋友
Android 微信聊天 支持,只能發(fā)送原始視頻,對(duì)方是iOS的話,有的編碼可以播放,有的無(wú)法播放但可以顯示一個(gè)畫(huà)面預(yù)覽
iOS 微信聊天 支持,提示進(jìn)行了自動(dòng)壓縮,發(fā)送給Android好友,對(duì)方可以播放
Android微信可以發(fā)送各種編碼的視頻
從微云里下載的2.09M的視頻被微信壓縮為1.39M
Android微信收到了iOS發(fā)來(lái)的視頻
Android微信可內(nèi)嵌播放iOS發(fā)來(lái)的視頻,注意頂部通知欄和右下角微信的“更多”按鈕
軟件\\功能 視頻播放情況
Android 微信聊天 收到的視頻會(huì)全屏內(nèi)嵌播放(無(wú)論來(lái)自Android還是iOS,無(wú)論編碼)。自己發(fā)出的視頻,會(huì)彈出選擇播放器。
iOS 微信聊天 點(diǎn)擊播放會(huì)直接全屏,檢測(cè)編碼,如果微信支持則自動(dòng)內(nèi)嵌播放,如果不支持,則一直停在0秒的預(yù)覽畫(huà)面。
Android微信自己發(fā)出的視頻,會(huì)彈出選擇播放器
iOS微信收到Android發(fā)來(lái)的各種視頻,都有一張圖片預(yù)覽
iOS微信不能播放VP9視頻,所以停在0秒預(yù)覽畫(huà)面
軟件\功能 發(fā)送本地視頻到朋友圈
Android 微信朋友圈 不支持,只支持“圖片”和微信私有的“小視頻”
iOS 微信聊天 不支持,同上

小結(jié):非常慶幸的是iOS可以保存視頻到系統(tǒng)相冊(cè),但由于Safari/微信不支持保存視頻,只能通過(guò)APP實(shí)現(xiàn)。所以如果產(chǎn)品上希望用戶(hù)保存,則APP里開(kāi)發(fā)這個(gè)功能即可,當(dāng)用戶(hù)看到別人分享的頁(yè)面里的視頻有意思,想下載時(shí),需要告訴TA只能通過(guò)APP下載。

Android用戶(hù)看到別人分享的頁(yè)面里的視頻有意思,可以直接下載,然后在微信聊天時(shí)發(fā)出去,對(duì)方可能是iOS,所以視頻一定要按照Android微信和iOS微信都能播放的編碼來(lái)制作。這對(duì)“小視頻APP”的視頻技術(shù)選型產(chǎn)生了巨大的影響。

iOS用戶(hù)微信聊天時(shí)收到有意思的視頻無(wú)法保存,只能收藏和轉(zhuǎn)發(fā),而Android用戶(hù)可以保存,這可能將導(dǎo)致兩個(gè)系統(tǒng)的用戶(hù)愛(ài)好的視頻不一樣,Android用戶(hù)更便于傳播表情包性質(zhì)的搞笑小視頻。

Android 和 iOS 對(duì)音頻視頻解碼的支持情況

軟件\視頻解碼 H.265 H.264 VP9 VP8 Theora
Android Chrome 支持 支持 支持
Android 微信瀏覽器 支持 支持 支持 支持
Android 微信聊天 支持 支持 支持 支持
Android 系統(tǒng)相冊(cè) 支持 支持 支持 支持
Android(應(yīng)與相冊(cè)一致) 5.0+ 3.0+ 4.4+ 4.3+
iOS Safari 支持
iOS 微信瀏覽器 支持
iOS 微信聊天 支持
iOS Facetime編碼解碼 iPhone 6+
iOS 系統(tǒng)相冊(cè) 支持
iOS 微云播放器 支持 支持 支持 支持

軟件\音頻解碼 | xHE-AAC| HE-AAC | AAC-LC | MP3 | Opus | Vorbis |
-------------------|----------|--------|-------|-------|----------
Android Chrome | todo | 支持 | 支持 | 支持 | 支持 | 支持
Android 微信瀏覽器 | todo | 支持 | 支持 | 支持 | | 支持
Android | todo | 支持 | 支持 | 支持 | 不 | 不
iOS Safari | todo | 支持 | 支持 | 支持 | 不 | 不
iOS 微信瀏覽器 | todo | 支持 | 支持 | 支持 | 不 | 不
iOS | todo | 4+ | 支持 | 支持 | 不 | 不

可以看到H.264 + AAC最通用,瀏覽器和系統(tǒng)相冊(cè)都能播放。iOS微信自動(dòng)壓縮后的視頻,在Android和iOS的微信和系統(tǒng)相冊(cè)里都可以播放,那必然是H.264 + AAC了。下載 MPEG-4-mp42--AVC-Main-L3-avc1--AAC-LC-40.mp4,用 mediainfo 分析一下就知:

$ mediainfo Videos/MPEG-4-mp42--AVC-Main-L3-avc1--AAC-LC-40.mp4
General
Complete name                            : Videos/MPEG-4-mp42--AVC-Main-L3-avc1--AAC-LC-40.mp4
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (mp41/mp42/isom)
File size                                : 1.39 MiB
Duration                                 : 14s 850ms
Overall bit rate mode                    : Variable
Overall bit rate                         : 785 Kbps
Encoded date                             : UTC 2016-11-04 04:29:35
Tagged date                              : UTC 2016-11-04 04:29:35

Video
ID                                       : 2
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 2 frames
Format settings, GOP                     : M=1, N=15
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 14s 850ms
Bit rate                                 : 716 Kbps
Width                                    : 480 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 1.000
Frame rate mode                          : Variable
Frame rate                               : 18.047 fps
Minimum frame rate                       : 6.667 fps
Maximum frame rate                       : 20.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.172
Stream size                              : 1.27 MiB (91%)
Title                                    : Core Media Video
Encoded date                             : UTC 2016-11-04 04:29:35
Tagged date                              : UTC 2016-11-04 04:29:35
Color range                              : Limited
Color primaries                          : BT.601 NTSC
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.601

Audio
ID                                       : 1
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 14s 790ms
Source duration                          : 14s 838ms
Bit rate mode                            : Variable
Bit rate                                 : 64.2 Kbps
Maximum bit rate                         : 76.1 Kbps
Channel(s)                               : 2 channels
Channel(s)_Original                      : 1 channel
Channel positions                        : Front: C
Sampling rate                            : 44.1 KHz
Frame rate                               : 43.066 fps (1024 spf)
Compression mode                         : Lossy
Stream size                              : 116 KiB (8%)
Source stream size                       : 116 KiB (8%)
Title                                    : Core Media Audio
Encoded date                             : UTC 2016-11-04 04:29:35
Tagged date                              : UTC 2016-11-04 04:29:35

但有些H.264 + AAC的視頻在Android和iOS的瀏覽器和系統(tǒng)相冊(cè)都能播放,在Android微信里可以發(fā)出去,對(duì)方無(wú)論是Android還是iOS都無(wú)法播放,比如 MPEG-4-JVT-avc1--AVC-Main-L3.1-avc1--HE-AAC-40--ChID-BLITS-EBU.mp4,用 mediainfo 分析結(jié)果如下:

$ mediainfo Videos/MPEG-4-JVT-avc1--AVC-Main-L3.1-avc1--HE-AAC-40--ChID-BLITS-EBU.mp4 
General
Complete name                            : Videos/MPEG-4-JVT-avc1--AVC-Main-L3.1-avc1--HE-AAC-40--ChID-BLITS-EBU.mp4
Format                                   : MPEG-4
Format profile                           : JVT
Codec ID                                 : avc1 (isom/avc1)
Overall bit rate mode                    : Variable
Overall bit rate                         : 189 Kbps

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : HE-AAC / LC
Codec ID                                 : 40
Bit rate mode                            : Variable
Bit rate                                 : 160 Kbps
Channel(s)                               : 2 channels
Channel(s)_Original                      : 6 channels
Channel positions                        : Front: L C R, Side: L R, LFE

對(duì)比如下:

軟件\功能 微信聊天能播放的視頻 微信聊天不能播放的視頻
General Format MPEG-4 MPEG-4
General Format profile Base Media / Version 2 JVT
General Codec ID mp42 avc1
Video Format AVC AVC
Video Format profile Main@L3 Main@L3.1
Video Codec ID avc1 avc1
Audio Format AAC AAC
Audio Format profile LC HE-AAC / LC
Audio Codec ID 40 40

不同的地方太多,需要逐個(gè)排除。難道是微信聊天不支持HE-AAC?那把音頻刪除試試:no-audio.mp4

$ ffmpeg -i Videos/MPEG-4-JVT-avc1--AVC-Main-L3.1-avc1--HE-AAC-40--ChID-BLITS-EBU.mp4 -vcodec copy -an no-audio.mp4
$ mediainfo no-audio.mp4 
General
Complete name                            : no-audio.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 157 KiB

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1

測(cè)試結(jié)果:iOS微信聊天可以播放了,但 General Codec ID 也變了,所以無(wú)法斷定是哪個(gè)問(wèn)題。那再做個(gè) isom + HE-AAC 的視頻試試:isom.mp4

ffmpeg -i Videos/MPEG-4-JVT-avc1--AVC-Main-L3.1-avc1--HE-AAC-40--ChID-BLITS-EBU.mp4 -vcodec copy -acodec copy isom.mp4

測(cè)試結(jié)果:iOS微信聊天無(wú)法播放。再做個(gè) isom + AAC 的視頻試試:aac.mp4

ffmpeg -i Videos/MPEG-4-JVT-avc1--AVC-Main-L3.1-avc1--HE-AAC-40--ChID-BLITS-EBU.mp4 -vcodec copy -acodec aac -strict -2 aac.mp4

測(cè)試結(jié)果:Android和iOS的微信聊天都可以播放。

技術(shù)選型結(jié)論

微信聊天時(shí)播放視頻不支持HE-AAC音頻,只支持AAC-LC。所以“小視頻APP(可下載)”的技術(shù)選型也就確定了:只能用 H.264 + AAC-LC。

AAC-LC 和 HE-AAC 的使用場(chǎng)景,請(qǐng)參考 Apple文檔

  • HE-AAC v2 for lower bitrates between 16 - 40 kb/s.
  • HE-AAC v1 for bitrates between 32 - 80 kb/s.
  • AAC-LC for bitrates higher than 80 kb/s.

測(cè)試素材

參考資料

  • xHE-AAC和H.265將成為下一代的主流編解碼技術(shù) read01.com
  • iTunes 9.2 and iOS 4 include full decoding of HE-AAC v2 parametric stereo streams. en.wikipedia.org
  • Android Supported Media Formats android.com
  • 再見(jiàn),AVC;你好,HEVC——VCB-Studio關(guān)於全面轉(zhuǎn)型HEVC的決定 vcb-s.com
  • 手機(jī)游戲音頻壓縮 gad.qq.com
  • xHE-AAC是HE-AAC v2的升級(jí)版本,是MPEG AAC家族系列編解碼器中的最新成員,適用于數(shù)字廣播和低比特率流媒體應(yīng)用。 fraunhofer.de
  • iPhone 6支持H.265 將強(qiáng)化蜂窩FaceTime feng.com
  • BBC實(shí)測(cè):H.265的確比H.264節(jié)省了50%的碼率 read01.com
  • WebP 探尋之路- 騰訊ISUX - 社交用戶(hù)體驗(yàn)設(shè)計(jì) isux.tencent.com
  • AAC規(guī)格(LC,HE,HEv2)及性能對(duì)比 blog.csdn.net
  • AAC (Main only, not AAC-LC, AAC-SSR, HE-AAC) chromium.org
  • Supported Media for Google Cast developers.google.com

本文已遷移至我的GitHub博客:https://sinkcup.github.io/android-ios-h265-vp9

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在保證視頻圖像質(zhì)量的前提下,HEVC通過(guò)增加一定的計(jì)算復(fù)雜度,可以實(shí)現(xiàn)碼流在H.264/AVC的基礎(chǔ)上降低50%。...
    加劉景長(zhǎng)閱讀 7,993評(píng)論 0 6
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,242評(píng)論 25 708
  • 最近,因?yàn)樯罟?jié)奏太快,又有太多事情夾雜在一起故而身體有些不適,于是決定抽出時(shí)間去醫(yī)院看看,提前掛好號(hào),并把手...
    小栗子閱讀 209評(píng)論 0 3
  • 目標(biāo):做到行業(yè)Top 關(guān)鍵: 1)提供有用信息:產(chǎn)品資料等 2)服務(wù)態(tài)度:客戶(hù)至上 3)細(xì)節(jié)問(wèn)題 上半年業(yè)績(jī)沒(méi)做好...
    奔向財(cái)富自由之路閱讀 181評(píng)論 0 0
  • 因?yàn)槁?lián)系捐款人,資助企業(yè)等事宜,昨天睡覺(jué)太晚。早上又迷迷糊糊聽(tīng)見(jiàn)兒子喊,便起床了。兒子是因?yàn)榘胍沽鞅茄褋?lái)求助的,...
    方一塵閱讀 195評(píng)論 0 0