解决Vimeo视频下载中断后m4s音视频文件拼接问题
Vimeo视频下载进度卡99%(仅获m4s分段文件)的解决方法
下载Vimeo视频时进度始终停在99%,仅得到对应视频流与音频流的两组m4s文件,尝试重命名扩展名、ffmpeg直接拼接等方法均无效。经分析,音视频流均由初始化文件+分段文件构成,可行解决方案如下:
- 打开目标视频页面,启动浏览器开发者工具(Firefox快捷键
CTRL-SHIFT-C),播放视频并监控Network流量,找到包含流信息的JSON数据。以1280x720分辨率的视频流为例:
{ "id": "b522db58", "base_url": "video/", "format": "dash", "mime_type": "video/mp4", "codecs": "avc1.640020", "bitrate": 2895000, "avg_bitrate": 1068000, "duration": 6787.88, "framerate": 25, "width": 1280, "height": 720, "max_segment_duration": 7, "init_segment": "AAAAIGZ0eXBkYXNoAAAAAGRhc2htcDQybXA0MWlzbzYAAAMfbW9vdgAAAGxtdmhkAAAAAN+RBZPfkQWTAAAAGQAAAAAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAACFpb2RzAAAAABCAgIAQAE////9//w6AgIAEAAAAAQAAAk50cmFrAAAAXHRraGQAAAAH35EFk9+RBZMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAABQAAAALQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAAAAAAAAwABAAAAAAHGbWRpYQAAACBtZGhkAAAAAN+RBZPfkQWTAAAAGQAAAABVxAAAAAAANmhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABMLVNNQVNIIFZpZGVvIEhhbmRsZXIAAAABaG1pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAShzdGJsAAAAsHN0c2QAAAAAAAAAAQAAAKBhdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAABQAC0ABIAAAASAAAAAAAAAABCkFWQyBDb2RpbmcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAN2F2Y0MBZAAg/+EAG2dkACCs2YBQBbpqAgICgAAAAwCAAAAZB4wYzQEABWjpeyyL/fj4AAAAABNjb2xybmNseAABAAEAAQAAAAAQc3R0cwAAAAAAAAAAAAAAEHN0c2MAAAAAAAAAAAAAABRzdHN6AAAAAAAAAAAAAAAAAAAAEHN0Y28AAAAAAAAAAAAAABhzZ3BkAQAAAHJvbGwAAAACAAAAAAAAABRzYmdwAAAAAHJvbGwAAAAAAAAAPG12ZXgAAAAUbWVoZAEAAAAAAAAAAAKW4QAAACB0cmV4AAAAAAAAAAEAAAABAAAAAQAAAAAAAQAA", "index_segment": "b522db58.mp4?r=dXMtd2VzdDE%3D&range=831-14434", "segments": [ { "start": 0, "end": 6.08, "url": "b522db58.mp4?r=dXMtd2VzdDE%3D&range=14435-328375", "size": 313940 }, {
提取视频流中的
init_segment值,保存为video_start.mp4,通过Base64解码工具解码该文件,得到视频初始化文件。使用十六进制编辑器,按正确顺序(可通过文件大小识别分段顺序)拼接
video_start.mp4与所有视频m4s分段文件,保存为完整的video.mp4。对音频流执行相同的前3步操作,先找到音频流的JSON信息:
"audio": [ { "id": "d27f1f72", "base_url": "audio/", "format": "dash", "mime_type": "audio/mp4", "codecs": "mp4a.40.2", "bitrate": 191000, "avg_bitrate": 191000, "duration": 6787.84, "channels": 2, "sample_rate": 48000, "max_segment_duration": 8, "init_segment": "AAAAIGZ0eXBkYXNoAAAAAGRhc2htcDQybXA0MWlzbzYAAAKmbW9vdgAAAGxtdmhkAAAAAN+RBlHfkQZRAAC7gAAAAAAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAACFpb2RzAAAAABCAgIAQAE///yn//w6AgIAEAAAAAQAAAdV0cmFrAAAAXHRraGQAAAAH35EGUd+RBlEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAETa5AAAAAAAAABAAAAAAFNbWRpYQAAACBtZGhkAAAAAN+RBlHfkQZRAAC7gAAAAABVxAAAAAAANmhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABMLVNNQVNIIEF1ZGlvIEhhbmRsZXIAAAAA721pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAAs3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAAAEgICAFEAVAAAAAAAAAAAAAAAFgICAAhGQBoCAgAECAAAAEHN0dHMAAAAAAAAAAAAAABBzdHNjAAAAAAAAAAAAAAAUc3RzegAAAAAAAAAAAAAAAAAAABBzdGNvAAAAAAAAAAAAAAA8bXZleAAAABRtZWhkAQAAAAAAAAATa5AAAAAAIHRyZXgAAAAAAAAAAQAAAAEAAAABAAAAAAABAAA=", "index_segment": "d27f1f72.mp4?r=dXM%3D&range=710-14325", "segments": [ { "start": 0, "end": 5.994666666666666, "url": "d27f1f72.mp4?r=dXM%3D&range=14326-157787", "size": 143461 },
提取音频流的
init_segment值,保存为audio_start.mp4并解码,拼接所有音频m4s分段文件为完整的audio.mp4。执行ffmpeg命令合并音视频:
ffmpeg -i video.mp4 -i audio.mp4 -c copy output.mp4
完成以上步骤后即可得到完整的目标视频。
内容的提问来源于stack exchange,提问作者Veverica10
相关产品推荐
相关产品推荐

