美文网首页
录像下载无法拖放问题总结

录像下载无法拖放问题总结

作者: 平阳_7763 | 来源:发表于2019-03-06 11:53 被阅读0次

# 录像下载无法拖放问题总结

问题就是下载下来的录像用本地的win10自带的播放器可以播放但是不能拖放,只有用VLC工具可以播放。

## 解决思路:

### 1、首先跟踪调试下载录像代码流程:

av_register_all注册所有的文件格式和编解码库;

avformat_network_init初始化全局网络库;

avformat_open_input打开输入流,读取流头部信息;

avformat_find_stream_info获取流信息,获取编解码器参数;

avformat_alloc_output_context2初始化输出封装格式;

avformat_find_stream_info获取必要的编解码器参数信息;

avformat_new_stream创建新的输出流;

avcodec_parameters_copy拷贝输入流的编解码器参数到输出流;

avformat_write_header写输出流头部信息即输出格式信息;

av_read_frame读取流数据并构建时间戳;

av_interleaved_write_frame写数据到媒体文件;

av_write_trailer写流的尾部数据到媒体文件;

剩下的释放资源空间。

根据以上流程没有发现异常。

### 2、问题翻来覆去的复现

在设备上下载下来录像文件用vlc和本地播放器反复播放,拖动实验,最终都没有头绪;只看找度娘查一查。

### 3、如何解决

首先,先搞清楚我们的设备上下载下来的格式fmp4格式,不是普通的mp4格式,二者是有区别的:

fMP4(fragmented MP4),可以简单理解为分片化的MP4,是DASH采用的媒体文件格式,文件扩展名通常为(.m4s或直接用.mp4)。

使用mp4info工具可以查看对应的文件内容对比。

fmp4是apple公司发布的视频格式。

将mp4格式转换为flv格式是可以正常播放的;

FMP4文件就是由各式各样的Box组成的,先简单介绍几个重要的box,以便诸位在后续学习时心中有数:

1、  ftyp box,在文件的开始位置,描述的文件的版本、兼容协议等;

2、  moov box,这个box中不包含具体媒体数据,但包含本文件中所有媒体数据的宏观描述信息,moov box下有mvhd和trak box。

        >>mvhd中记录了创建时间、修改时间、时间度量标尺、可播放时长等信息。

        >>trak中的一系列子box描述了每个媒体轨道的具体信息。

3、  moof box,这个box是视频分片的描述信息。并不是MP4文件必须的部分,但在我们常见的可在线播放的MP4格式文件中(例如Silverlight Smooth Streaming中的ismv文件)确是重中之重。

4、  mdat box,实际媒体数据。我们最终解码播放的数据都在这里面。

5、  mfra box,一般在文件末尾,媒体的索引文件,可通过查询直接定位所需时间点的媒体数据。

### 结论

根据mp4info工具读取的结果可以对照,我们的视频数据是正常的,没有异常。

所以只能说是格式兼容性问题,也就是说fmp4格式视频在apple设备上是可以播放的,在win10上面的播放器除了vlc以外,其他播放器某些可以播放但不能拖动,迅雷等播放器直接不能播放。

为了验证结论的真实性,用ffmpeg命令行将h264格式视频转换为mp4格式尝试看是能播放:

ffmpeg -i d:\test.264 -g 52 -vcodec copy -f mp4 -movflags frag_keyframe+empty_moov d:\output.mp4

最终是转换之后也是vlc可以播放,本地自带win10播放器可以播放但是不能拖放,迅雷不能播。

相关文章

  • 录像下载无法拖放问题总结

    # 录像下载无法拖放问题总结 问题就是下载下来的录像用本地的win10自带的播放器可以播放但是不能拖放,只有用VL...

  • Sublime3+Markdown中碰到的问题总结

    Sublime3+Markdown中碰到的问题总结 1.无法开启Package Control 手动下载Packa...

  • 下载图片时,a标签无法下载问题

    原因: 标签通过download 属性下载文件只适用于同源的文件 非同源的时候 标签的download属性无效,会...

  • 前端面试05:说一下 HTML5 drag api

    dragstart:事件主体是被拖放元素,在开始拖放被拖放元素时触发。 darg:事件主体是被拖放元素,在正在拖放...

  • 二叉树与线程同步问题

    某App需要从设备上下载一段录像,为提高下载速度,需要同时开启两个线程A和B,分别进行下载,并且在下载后录像片段以...

  • Java-RuoYi框架问题

    RuoYi-Vue-UI,无法install的问题 --可能是网络问题无法下载资源 --可以使用yarn工具下载依...

  • 我爱看电影

    录像带 vcd 电视台 dvd 下载

  • ​想尽一切方法来解决问题

    新产品即将上线,需要从苹果应用商店下载应用进行测试,可问题是始终无法将应用下载下来,提示是无法完成下载。无法下载就...

  • DNS劫持问题记录

    问题描述:某些地区性客户反应应用更新无法下载问题排查原因:用户使用自带浏览器打开下载地址(无法下载)(浏览器打不开...

  • Android Studio 3.6 第一坑

    描述:无法下载pom/无法下载依赖 解决思路:(老毛病,配置或网络问题) gradle.properties(Gl...

网友评论

      本文标题:录像下载无法拖放问题总结

      本文链接:https://www.haomeiwen.com/subject/uprtpqtx.html