流媒体技术基础-流媒体编码与协议

news2025/7/27 19:19:09

一、流媒体传输协议

1.实时传输协议RTP

  • 针对多媒体数据流的一种传输协议,建立在UDP协议上,属于传输层协议。

  • 定义互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议)、视频会议和视频电话系统(配合H.263或SIP)。

2.实时传输控制协议RTCP

  • RTCP为RTP媒体流提供信道外控制,定期在流多媒体会话参加者之间传输控制数据,属于传输层协议。。

  • RTCP的主要功能是为RTP所提供的服务质量提供反馈,收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,时延抖动,单向和双向网络延迟等。

3.实时流协议RTSP

  • RTSP协议定义了一对多应用程序如何有效通过IP网络传送多媒体数据。

  • RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输,属于应用层协议。

  • RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。

  • 缺点:因为互联网网络环境的不稳定性,RTSP+RTP较少用于互联网视音频传输。

4.资源预定协议RSVP

  • 使用RSVP预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供QoS,在RTP协议之下,属于网络层协议。

5.实时消息传输协议RTMP/RTMPS

  • Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议,属于应用层协议。

  • 它有三种变种:

    • 工作在TCP之上的明文协议,使用端口1935;

    • RTMPT封装在HTTP请求之中,可穿越防火墙;

    • RTMPS类似RTMPT,但使用的是HTTPS连接。

  • RTMP视频播放的特点:

    • RTMP协议是采用实时的流式传输,所以不会缓存文件到客户端。

    • 视频流可以随便拖动,既可以从任意时间点向服务器发送请求进行播放,并不需要视频有关键帧。

    • RTMP协议支持点播/回放(通俗点将就是支持把flv,f4v,mp4文件放在RTMP服务器,客户端可以直接播放),直播(边录制视频边播放)

    • 在浏览器端依赖Flash,可以满足直播产品的需求,但不能满足视频通话的产品需求。

  • RTMP推流:librtmp、ffmpeg

  • web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!

6.微软媒体服务器协议MMS

  • 用来访问并流式接收WindowMedia服务器中.asf文件的一种协议。

  • MMS协议用于访问Windows Media发布点上的单播内容,MMS的预设端口是1755.

7.HTTP Live Streaming [IOS设备直播]

  • 苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用于iOS系统。

  • HLS直播最大的不同在于,直播客户端获取到的并不是一个完整的数据流,HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。

  • 解决苹果原生环境中的流媒体播放,这个协议可以方便地让Mac和iPhone播放视频流,不依赖Adobe(RTMP)。

  • 优点: HTTP 传输,有效避免防火墙拦截, 支持网络分发,CDN 支持良好,自带多码率自适应。

  • 缺点:

    • 实时性差,延迟高,延迟基本在 10s+ 以上;

    • 文件碎片,双刃剑,ts 切片较小,会造成海量小文件。

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  

8.WebRTC [音视频互通]

网页即时通信(Web Real-Time Communication),是一个支持网页浏览器进行实时语音对话或视频对话的API。无需安装任何插件就可以实现在网页浏览器中的实时通信。WebRTC还具备跨平台属性。

应用场景:

  • 视频社交、在线教育、视频会议、智能硬件(电视、智能音箱、智能手表等各种设备上进行音视频互动)。

9.HTTP-FLV

HttpFlv 就是 http+flv ,将音视频数据封装成FLV格式,然后通过 HTTP 协议传输给客户端。

FLV (Flash Video) 是 Adobe 公司推出的另一种视频格式,是一种在网络上传输的流媒体数据存储容器格式。

优点:可以通过 HTTP 传输,基于 HTTP/80 传输,有效避免被防火墙拦截,支持使用 HTTPS 加密传输,也能够兼容支持 Android,iOS 的移动端。

缺点:由于它的传输特性,会让流媒体资源缓存在本地客户端,在保密性方面不够好。因为网络流量较大,它也不适合做拉流协议。

10.Websocket-FLV

基于WebSocket传输FLV,依赖浏览器支持播放FLV。WebSocket建立在HTTP之上,建立WebSocket连接前还要先建立HTTP连接。

11.SRT

12.流媒体协议对比

流媒体协议协议视频封装播放器延时数据分段HTML5场景
RTSP+RTPTCP+UDPVLC, WMP2s连续流不支持IPTV
RTMPTCPflv tagFlash2s连续流不支持互联网直播,点播
HLSHTTPm3u8/tsVideo10s+切片支持H5,互联网直播,点播
HTTP-FLVHTTPflvVideo2s连续流支持H5,互联网直播,点播
Websocket-FLVWebSocketflvVideo2s连续流支持H5,互联网直播,点播
WebRTC实时音视频对话

备注:FLV里所包含的视频编码必须是H.264,音频编码必须是AACMP3

13.直播运行流程

  1. 如果拉取RTSP音视频流,需要先将RTSP的H264 音视频源

  2. 主播端在采集到一段时间的音视频原数据后,因为音视频原数据庞大需要先压缩数据:

    • YUV视频数据过视频编码压缩为H264视频数据

    • PCM音频数据通过音频编码压缩为AAC音频数据

  3. 压缩完后再通过FLV容器格式封装压缩后的数据,封装成一个FLV TAG

  4. 再把FLV TAG通过RTMP协议编码再推流到音视频服务器,音视频服务器再从RTMP协议里解析出FLV TAG。

  5. 音视频服务器再通过HTTP协议通过和浏览器建立的长链接流式把FLV TAG传给浏览器。

  6. flv.js 获取FLV TAG后解析出压缩后的音视频数据喂给Video播放。

14.直播平台参数对比

视音频编解码技术零基础学习方法

直播即互联网视音频平台直接将视频内容实时发送给用户

名称协议封装视频编码音频编码播放器
华数TVRTMPFLVH.264AACFlash
六间房RTMPFLVH.264AACFlash
中国教育电视台RTMPFLVH.264AACFlash
北广传媒移动电视RTMPFLVH.264AACFlash
上海IPTVRTSP+RTPTSH.264MP2机顶盒
  • 直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。

  • 采用RTMP作为直播协议的好处在于其被Flash播放器支持。而Flash播放器与浏览器结合的很好。

15.点播平台参数对比

点播即根据用户的需要播放相应的视频节目

名称协议封装视频编码音频编码播放器
CNTVHTTPMP4H.264AACFlash
CNTV(部分)RTMPFLVH.264AACFlash
华数TVHTTPMP4H.264AACFlash
优酷网HTTPFLVH.264AACFlash
土豆网HTTPF4VH.264AACFlash
56网HTTPFLVH.264AACFlash
音悦台HTTPMP4H.264AACFlash
乐视网HTTPFLVH.264AACFlash
新浪视频HTTPFLVH.264AACFlash
  • 点播服务普遍采用了HTTP作为流媒体协议,H.264作为视频编码格式,AAC作为音频编码格式。

二、音视频编码格式

1.视频播放器原理

  • 视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:

    • 解协议

    • 解封装

    • 解码视音频

    • 视音频同步

  • 如果播放本地文件则不需要解协议,为以下几个步骤:

    • 解封装

    • 解码视音频

    • 视音频同步

过程如图所示:

 

2.视频的原始数据格式

  • YUV 格式

    视频数据是使用称之为YCbCr颜色模式,它也是常称为YUV。

    • YUV的颜色编码

      • YUV颜色编码采用的是明亮度和色度来指定像素的颜色。

        • Y代表明亮度(Luminance、Luma)

        • 而U和V表示色度(Chrominance、Chroma),色度又定义了颜色的两个方面:色调和饱和度。

    • YUV 格式分类

      YUV 格式详解

      • 按照人眼的特性分类:

        • YUV 420,由 4 个 Y 分量共用一套 UV 分量,在每一行扫描时,只扫描一种色度分量(U或者V),和Y分量按照2:1的方式采样。

        • YUV 422,由 2 个 Y 分量共用一套 UV 分量,Y分量和UV分量按照2:1的比例采样。

        • YUV 444,不共用,一个 Y 分量使用一套 UV 分量,色彩的全部信息被保存下来。

      • 按照 YUV 的排列方式,再次将 YUV 分成三个大类

        • Planar, YUV 三个分量分开存放

        • Semi-Planar, Y 分量单独存放,UV 分量交错存放

        • Packed YUV, 三个分量全部交错存放

      • 具体分类

        • I420(属于 YUV 420 Plannar)

          • YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.25 长度的 U, 最后是 w * h * 0.25 长度的 V,总长度为 w * h * 1.5。

        • YV12(属于 YUV 420 Plannar)

          • YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.25 长度的 V, 最后是 w * h * 0.25 长度的 U,总长度为 w * h * 1.5。

        • NV12(属于 YUV 420 Semi-Planar)

          • Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 U 开始。总长度为 w * h * 1.5。

        • NV21(属于 YUV 420 Semi-Planar)

          • Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 V开始。总长度为 w * h * 1.5。

        • I422(属于 YUV 422 Plannar)

          • YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.5 长度的 U, 最后是 w * h * 0.5 长度的 V,总长度为 w * h * 2。

        • YV16(属于 YUV 422 Plannar)

          • UV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.5 长度的 V, 最后是 w * h * 0.5 长度的 U,总长度为 w * h * 2。

        • NV16(属于 YUV 422 Semi-Planar)

          • Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 U 开始。总长度为 w * h * 2。

        • NV61(属于 YUV 422 Semi-Planar)

          • Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 V 开始。总长度为 w * h * 2。

        • YUVY(属于 YUV 422 Interleaved)

          • Interleaved 即是 Packed ,在 Packed 内部,YUV 的排列顺序是 Y U V Y,两个 Y 共用一组 UV。

        • UYVY(属于 YUV 422 Interleaved)

          • YUV 的排列顺序是 UYVY,两个 Y 共用一组 UV。

        • I444(属于 YUV 444 Plannar)

          • YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h 长度的 U, 最后是 w * h 长度的 V,总长度为 w * h * 3。

        • YV24(属于 YUV 444 Plannar)

          • YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h 长度的 V, 最后是 w * h 长度的 U,总长度为 w * h * 3。

        • NV24(属于 YUV 444 Semi-Planar)

          • Y 分量单独存放,UV 分量交错存放,UV 在排列的时候,从 V 开始。总长度为 w * h * 3。

  • RGB 格式

    RGB颜色模式,即每个像素点都由红,绿,蓝三个颜色组合而成,YCbCr(YUV)则使用色彩(颜色)通道UV替换了像素的亮度通道。

    • RGB的颜色编码

      • RGB三个字母分别代表了红(red)、绿(green)、蓝(blue),这三种颜色称为三原色。

      • 在图像显示中,一张1280 * 720 大小的图片,就代表着它有1280 * 720 个像素点。每⼀个像素点的颜⾊显示都采⽤RGB 编码⽅法,将RGB 分别取不同的值,就会展示不同的颜⾊。

      • 红、绿、蓝三个原⾊,其中每种原⾊都占⽤8 bit,那么⼀个像素点也就占⽤24 bit,也就是三个字节。

        • ⼀张1280 * 720 ⼤⼩的图⽚,就占⽤1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存储空间

    • RGB分类

      RGB在计算机中的表示主要分为两大类,一种是索引形式,一种是像素形式

      RGB格式详解

      • 索引

        关于调色板,可以简单理解为通过编号映射到颜色的一张二维表。

        • RGB1: 每个像素用1个bit表示,可表示的颜色范围为双色,即最传统的黑和白。1个bit只能表示0,1两种值。需要调色板,不过调色板只包含两种颜色。

        • RGB4: 每个像素用4个bit表示,4个bit所能够表示的索引范围是0-15,共16个。也就是可以表示16种颜色。即调色板中包含16中颜色。

        • RGB8: 每个像素用8个bit表示。8个bit所能够表示的索引范围是0-255,共256个。也就是可以表示256中颜色。即调色板中包含256中颜色。

      • 像素形式

        • RGB565: 一个像素用16个bit表示, R, G, B分别用5, 6, 5个bit来表示,格式也因此而得名,图像大小width * height * 2。

        • RGB555: 一个像素用16个bit表示,但是最高位不用,R, G, B分别用5个bit来表示,图像大小width * height * 2。

        • RGB24(RGB888):一个像素用24个bit 表示,R, G,B分量分别用8个bit来表示,图像大小width * height * 3。

        • RGB32:一个像素用32个bit表示,R, G, B分量分别用8个bit表示,存储顺序为B, G, R,最后8个字节保留,图像大小width * height * 4。

        • ARGB32:与RGB32类似,不同的地方是RGB32保留的8个BIbit用来表示透明

    • RGB 与 YUV 颜色编码转换

      对于图像显示器(即屏幕)来说,是通过RGB模型来展示图像的,而传输时的图像数据使用的是YUV模型,主要是因为YUV可以节省带宽。

      RGB 到 YUV的转换,其实就是将图像所有像素点的R、G、B分量 转换到 Y、U、V分量。

      //YUV和RGB的转换:
      Y = 0.299 R + 0.587 G + 0.114 B
      U = -0.1687 R - 0.3313 G + 0.5 B + 128
      V = 0.5 R - 0.4187 G - 0.0813 B + 128
      ​
      R = Y + 1.402 (V-128)
      G= Y - 0.34414 (U-128) - 0.71414 (V-128)
      B= Y + 1.772 (U-128)

3.视频的编码格式

  • H.264:高性能的视频编解码技术,有更高的数据压缩比。

    • 在同等的图像质量,H.264的数据压缩比能比 MPEG-2高2~3倍,比MPEG-4高1.5~2倍。

  • H.265:比H.264压缩率更高的视频编解码技术

  • MPEG1:VCD编码格式

  • MPEG2:用于广播电视和DVD

  • MPEG4:适用于低传输速率应用的方案,更适于交互AV服务以及远程监控

  • Xvid:由MPEG-4衍生出的一种开源视频编码(压缩)标准,特别是用于家用DVD和便携式MP4等设备。

  • Divx:由MPEG-4衍生出的一种视频编码(压缩)标准,采用了MPEG4的压缩算法,同时又综合了MPEG-4与MP3各方面的技术,要收费。

4.音频的原始数据格式

  • PCM 格式

5.音频的编码格式

名称推出机构推出时间目前使用领域
AACMPEG1997各个领域(新)
AC-3Dolby Inc.1992电影
MP3MPEG1993各个领域(旧)
WMAMicrosoft Inc.1999微软平台

6.视频封装格式

  • AVI

  • Matroska(MKV)

  • MP4

  • 3GP

  • RMVB

  • FLV

封装格式包含视频编码和音频编码,封装容器对音频编码和视频编码的组合方式放的很开,封装格式是不影响画质。

封装容器机构流媒体视频流编码格式音频流编码格式领域
AVIMicrosoft Inc.不支持几乎所有格式几乎所有格式BT下载
Matroska(MKV)CoreCodec Inc.支持几乎所有格式几乎所有格式互联网视频网站
TSMPEG支持MPEG-1, MPEG-2, MPEG-4, H.264MPEG-1 Layers I, II, III, AAC,IPTV,数字电视
MP4MPEG支持MPEG-2, MPEG-4, H.264, H.263等AAC, MPEG-1 Layers I, II, III, AC-3等互联网视频网站
FLVAdobe Inc.支持Sorenson, VP6, H.264MP3, ADPCM, Linear PCM, AAC等互联网视频网站
MVBReal Networks Inc.支持RealVideo 8, 9, 10AAC, Cook Codec, RealAudio LosslessBT下载影视
3GPH.263AAC

7.图片压缩格式

格式压缩模式透明支持
JPEG(JPG)有损压缩不支持
PNG无损压缩支持
BMP无压缩不支持

占用空间:BMP > PNG > JPG

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题二python代码实现(更新完毕)

更新信息 2022-11-24 10:00 更新问题1和问题2 思路 2022-11-24 23:20 更新问题一代码 2022-11-25 11:00 更新问题二代码 相关链接 【2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题一python代码实现】 【2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题二python代…

爱尔兰博士后招聘|利默里克大学-广告学

[国外博士后招聘-知识人网]爱尔兰利默里克大学广告学博士后 爱尔兰利默里克大学是爱尔兰独立后第一所由政府资助而建的综合型独立大学。爱尔兰利默里克大学是爱尔兰七所国立大学之一,1972年开始招生,1989年被政府准予授予学位。利莫瑞克大学下设六个学院…

【学习笔记25】JavaScript字符串的基本认识

JavaScript字符串的基本认识一、严格模式二、字符串1、字面量2、构造函数3、包装类型三、字符集(了解)1、ASCII:128个2、GBK国标码:前128位ASCII,从129开始为汉字3、unicode(万国码)四、字符串的length与下标一、严格模…

【数论】质数

文章目录一、试除法判定质数二、试除法分解质因数三、筛法求素数1. 朴素筛法2. 埃氏筛法3. 线性筛法质数:大于1,且只包含1和本身两个因数的整数 一、试除法判定质数 如果是合数,那么因数一定是成对出现的,比如12,有2…

【Axure教程】能增删改数据的动态饼图

可视化视图是系统分析中非常重要的一个环节,今天作者就教大家在Axure中如何用中继器表格结合echarts图片,制作出一个能够动态增删改数据饼图的原型模板。需要制作的效果如下图所示: 自动生成饼图:通过修改中继器表格中的数据&…

教程三 在Go中使用Energy创建跨平台应用 - 状态控制

本文介绍在Energy中如何像浏览器一样控制状态, 页面的加载、前进、后退、刷新、暂停刷新 前提-需要安装好开发环境参考:教程一环境安装 创建应用 开发环境中 MacOSX平台必须在"GlobalCEFInit"之前设置CEF设置使用CEF 和 CEF框架目录,生成开发执行应用程…

【kafka】十、kafka消费者offset维护

消费者offset维护 offset维护 由于consumer在消费过程中可能会出现断电宕机等故障,consumer恢复后,需要从故障前的位置继续消费,所以consumer需要实时记录自己消费到了哪个offset,以便恢复后继续消费。 消费者是按照消费者组来保…

第八章 动态规划 3 AcWing 1554. 找更多硬币

第八章 动态规划 3 AcWing 1554. 找更多硬币 原题链接 AcWing 1554. 找更多硬币 算法标签 DP 背包问题 思路 经典01背包问题 闫氏DP分析法 状态表示 状态初始化 状态计算 状态转移方程式 要求字典序最小,因此先存硬币面额到数组再降序排列,保…

App逆向之frida-dexdump脱壳分析某肿瘤sign

声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究 一、firda 的安装 国内下载很慢:pip…

docker容器网络

第七章容器网络 Docker网络 veth pair:成对出现的一种虚拟网络设备,数据从一端进,从另一端出。用于解决网络命名空间之间隔离。 docker0:网桥是一个二层网络设备,通过网桥可以将Linux支持的不同端口连接起来&…

Git常见命令与使用,从0到1学会使用Git

👨‍💻个人主页: 才疏学浅的木子 🙇‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 🙇‍♂️ 📒 本文来自专栏: 常见软件安装与运用 ❤️ 支持我:👍点赞…

linux NPS 服务端安装 +linux 客户端安装

本文参考博客: https://blog.csdn.net/m0_57776598/article/details/123674866 一、下载安装包 1、官方下载 官方下载地址:https://github.com/ehang-io/nps/releases 注意不要下错了,当前我下的版本为 v0.26.10 2、网盘下载 网盘下载&…

Python编程 字典的常用操作

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.字典 1.访问字典(掌握) 2.字典的增加与修改(掌握) 3.系列删除(掌握) …

Web3中文|元宇宙在商业中的最佳应用

来源 | techrepublic 编译 | DaliiNFTnews.com 麻省理工学院斯隆管理学院的信息技术高级讲师Paul McDonagh-Smith说,麻省理工学院的人工智能先驱Marvin Minsky创造了“手提箱式词语”一词——即一些词或术语本身没有任何意义,而需要人去挖掘、赋予和丰…

计算机英文论文写作需要注意哪些细节? - 易智编译EaseEditing

1)尽量用动词少用名词化 那些大篇名词的文章真的很难读懂,而有强大动词的句子更容易理解。 我们注意到客户在论文中经常使用的名词有“agreement”, “disagreement”, “investigation”, “analysis”, “examination”, “comparison”, “increase…

【MySQL技术专题】「索引技术」体验前所未有的技术探险,看穿索引的本质和技术体系(1)

文章目录前提概要数据库类型内容架构索引和磁盘的关系数据读取时主要时间开销总结分析瓶颈点优化的方式数据量计算传统暴力(顺序型读写)X索引机制(半随机性读写)√索引升级之多级索引化(全随机性读写)使用索…

读书笔记《Spring Boot+Vue全栈开发实战》(下)

本书将带你全面了解Spring Boot基础与实践,带领读者一步步进入 Spring Boot 的世界。前言第九章 Spring Boot缓存第十章 Spring Boot安全管理第十一章 Spring Boot整合WebSocket第十二章 消息服务第十三章 企业开发第十四章 应用监控第十五章 项目构建与部署第十六章…

【python与数据分析】Pandas统计分析基础

目录 前言 一、pandas常用数据类型 综述 1.一维数组(Series)与常用操作 (1) 通过列表创建Series (2)创建Series时指定索引 (3)Series位置和标签的使用 (4&#x…

m基于中继协助的认知无线电频谱切换机制的matlab仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 认知无线电网络在进行频谱切换的时候,最为重要的问题是如何以最少的频谱切换次数实现频谱切换,同时保证较好的服务质量,这里,服务质量不仅…

植入“人工心脏”助患者重获“心”生

【同期】人工心脏移植患者 刘女士这要是在过去的时候也就放弃了,我再活20年,我还能看着我大孙子成家,这就是我最大的希望。【解说】11月22日,人工心脏移植患者和心脏移植患者在即将康复出院前,互相握手庆贺。据了解&am…