ffmpeg是一款非常强大的工具,它可以在命令行下对视频类文件进行多种操作,之前我也介绍过ffmpeg,戳这里
在使用过程中我们经常可以遇到使用ffmpeg无法下载文件的情况,那这是为什么呢?
其实有时候,服务端会对我们客户端的请求进行检验,其中最简单的就是检查请求头:User-Agent ,如果你连请求头都没,那你肯定就暴露了你不是正常的用户,你既然不是正常的用户,那那服务器那边就会拒绝你的访问请求,所以就导致了你被403。
既然这样那咱们简单设置一下请求头就可以了:
1
|
ffmpeg -user_agent "User-Agent: AppleCoreMedia/1.0.0.18C66 (iPhone; U; CPU OS 14_3 like Mac OS X; zh_cn)" -i https://www.baidu.com/xxx.mp4\?id\=2399977 -c copy str4.mp4
|
当你设置了请求头以后你还别高兴太早了!因为服务器那边既然开启了检测,就不会通过这麽简单的方法来拦截非正常用户的访问。一般来说还有各种headers
这时我们就需要通过抓包来获得具体的请求头里的参数了,下面我就简单的介绍一下具体的参数该如何写。注意 $'\r\n'
这是一种换行的写法。
1
|
ffmpeg -user_agent "User-Agent: AppleCoreMedia/1.0.0.18C66 (iPhone; U; CPU OS 14_3 like Mac OS X; zh_cn)" -headers "Authorization: fudkmnso-... ...9-0sdf-0ea"$'\r\n'"Xplay-session-ID:9885998" -i https://www.baidu.com/xxx.mp4\?id\=2399977 -c copy str4.mp4
|