【发布时间】:2019-08-21 21:20:05
【问题描述】:
我想从浏览器上运行的播放器 (HLS/DASH) 中捕获自适应比特率 (ABR) 视频的片段/块,以便将所有块组合成一个无缝视频,以便稍后分析 QoE(质量整个视频的体验),即VMAF。为此,所有片段都必须是同一视频文件的一部分。
通常可以在基于 linux 的操作系统上使用 cat 命令来组合相同分辨率的视频块,例如,
cat init.mp4 video1.mp4 video2.mp4 > fullvideo.mp4
但是我想要的是在 ABR 播放器在配置文件/分辨率之间切换时合并视频,例如,
-
800x600init.mp4 800x600video1.mp4-
1920x1024init.mp4 -
1920x1024video2.mp4 -
1920x1024video3.mp4
在 HLS/DASH 播放器上,切换过程无缝进行,我想在组合文件中重现此行为。但是,当我尝试使用cat 组合所有片段时,输出无法被 VLC 等 mp4 播放器正确处理。据我了解,.mp4 格式似乎只支持以相同分辨率连接视频帧。
顺便说一句,如果我通过按分辨率对片段进行分组来进行连接,则视频播放器可以正确再现输出文件。
下面是我最初尝试的示例。文件的顺序由播放器请求视频片段的顺序给出。
[administrator@PlayerMedia mediaFiles]$ cat NGK_The_Owl_Y_Co_T1_E02_HD_STR-video=800000-init.mp4 \
NGK_The_Owl_Y_Co_T1_E02_HD_STR-video=800000-0.mp4 \
NGK_The_Owl_Y_Co_T1_E02_HD_STR-video=5993000-init.mp4 \
NGK_The_Owl_Y_Co_T1_E02_HD_STR-video=5993000-60060.mp4 \
NGK_The_Owl_Y_Co_T1_E02_HD_STR-video=5993000-120120.mp4 > final.mp4
输出文件 final.mp4 仅包含第一个 init.mp4 @ bitrate=800000 中包含的元数据,因此比特率=5993000(较高分辨率)的下一个视频块显示为损坏的视频。
我想知道录制视频的最佳选择是什么,包括 HLS 或 DASH 等 ABR 协议的播放器所经历的分辨率变化。
【问题讨论】:
标签: video mp4 http-live-streaming