mu38中ts 文件伪装成png 文件解析~

正常的文件m3u8应该这样子

但是有的却是这个样子

于是百度一波 我个人任务合理的🔚如下

  • 由于很多企业或者开发者想白嫖免费cdn~ 所以想出来一个损招~ 就是ts伪装png 并且真的添加不定长的的 png heaer~
  • 这样的例子很多 前端npm包时免费的有人就利用这个玩意上传了65G的武林外传~ 怎么样牛逼吧~
  • 还有一个更觉得例子~ 之前一个公司java war包很大3G~ 说优化一下~ 无论怎么优化 都是那么大~ 后来花钱请人优化~
    竟然发现有1.5G的红色警戒在里面~ 原因:有天发版到半夜 都等着 觉得无聊 就是有人提议玩红警~ 但是没办法传到其他电脑上 ~ 就是临时上传到SVN上~ 结果忘记删除了

但是png ffmpeg 是播放不了的 因为验证格式

[hls,applehttp @ 0x55efcdf226c0] Could not find codec parameters for stream 0 (Video: png, none(pc)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, hls,applehttp, from '**********':
  Duration: 00:03:32.44, bitrate: 0 kb/s
  Program 0 
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: png, none(pc), 25 tbr, 25 tbn, 25 tbc
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'rick.mp4':
Output file #0 does not contain any stream
  • 可以通过重新编译 去掉png 格式验证
git clone --depth=1 https://github.com/FFmpeg/FFmpeg.git
./configure --disable-doc --disable-asm --disable-x86asm --enable-protocols --enable-protocol=https --disable-demuxer=image2,image2_alias_pix,image2_brender_pix,image2pipe,image_bmp_pipe,image_cri_pipe,image_dds_pipe,image_dpx_pipe,image_exr_pipe,image_gem_pipe,image_gif_pipe,image_hdr_pipe,image_j2k_pipe,image_jpeg_pipe,image_jpegls_pipe,image_jpegxl_pipe,image_pam_pipe,image_pbm_pipe,image_pcx_pipe,image_pfm_pipe,image_pgm_pipe,image_pgmyuv_pipe,image_pgx_pipe,image_phm_pipe,image_photocd_pipe,image_pictor_pipe,image_png_pipe,image_ppm_pipe,image_psd_pipe,image_qdraw_pipe,image_qoi_pipe,image_sgi_pipe,image_sunrast_pipe,image_svg_pipe,image_tiff_pipe,image_vbn_pipe,image_webp_pipe,image_xbm_pipe,image_xpm_pipe,image_xwd_pipe
make -j4
make install

分析差别

  • 原生的TS
  • 伪装PNG
  • 对比发现前面653字节是多余的 删除前面653字节
dd if=662778970007a4b72777def2ef00311e000000a100004f50 of=out.ts bs=1 skip=653

  • 再次查看
  • 使用ffmpeg播放

posted @ 2024-04-30 11:16  vx_guanchaoguo0  阅读(161)  评论(0编辑  收藏  举报