1、問題描述
在使用海康 SDK 的 NET_DVR_SaveRealData 接口,將視頻流保存成MP4文件后,通過瀏覽器無法播放MP4,播放其它的MP4正常。
2、原因分析
對比可以正常播放的MP4 和 無法播放的MP4文件,比較它們的詳細信息,發現海康SDK保存的視頻文件是MPEG-PS格式,后綴應該是mpeg、mpg等,但是寫成了MP4,官方手冊中也是MP4。
但是html5無法播放MPEG-PS格式文件;
通過的MP4文件,其格式應該是MPEG-4。
3、解決方法
1)嘗試將生成的文件保存為mpeg后綴的文件,在html5中依然不能播放。
2)將生成的文件,使用 FFmpeg 來轉碼
ffmpeg -i test.mpeg test.mp4
3)使用FFmpeg命令將海康的rtsp流保存為mp4
ffmpeg -rtsp_transport tcp -i rtsp://127.0.0.1/streaming/channels/101 -vcodec copy -an -t 10 -y test.mp4