4

通常使用 ffplay 你可以播放这样的视频

ffplay http://easy.com/foo.flv

但是,我遇到了一个需要 cookie 的视频。wget 对此没有任何问题

wget http://hard.com/foo.flv --load-cookies cookies.txt

ffplay可以播放需要cookie的视频吗?

根据pogorskiy 的回答,这是可行的

ffplay -headers $'Cookie: sbsession=sbg&sbuser=lorem\r\n' http://hard.com/foo.flv
4

3 回答 3

8

http协议中有一个选项-headers。因此我们可以写

ffplay http://easy.com/foo.flv -headers "Cookie: MyCookies"

但是 ffmpeg 需要\r\n在附加标头中进行序列化。否则你会收到警告

[http @ 011701a0] No trailing CRLF found in HTTP header.

并且标题添加不正确。我们无法通过命令行正确传递 CRLF 序列。我认为唯一的解决方案是修复http.c,以便将预定义字符替换为 CRLF。

于 2012-12-03T08:17:57.257 回答
2

实际上你可以在 shell 中测试它

$ echo 0$'\r\n'0
0
0

所以,在标题字符串的末尾添加 $'\r\n'

ffplay http://easy.com/foo.flv -headers "Cookie: MyCookies"$'\r\n'

ffplay 将得到非字符串 \r\n。它适用于我的 ffmpeg 版本ffmpeg version git-2014-09-24-857fc0a

于 2014-12-04T09:09:12.740 回答
0

根据pogorskiy 的回答,这对我来说适用于 Bash

set 'sbsession=sbg&sbuser=lorem' 'http://hard.com/foo.flv'
printf -v q 'Cookie: %s\r\n' "$1"
ffplay -headers "$q" "$2"
于 2013-02-04T09:55:56.903 回答