使用cookies的ffplay

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

MPlayer可以做到。请参见这里 - Piotr Praszmo
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。


3

实际上,您可以在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


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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接