【问题标题】:ffplay with cookiesffplay 饼干
【发布时间】:2014-12-04 17:09:12
【问题描述】:

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

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

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

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

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

基于pogorskiy’s answer 这个作品

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

【问题讨论】:

  • MPlayer 可以做到。见here

标签: ffmpeg


【解决方案1】:

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。

【讨论】:

    【解决方案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

    【讨论】:

      【解决方案3】:

      基于pogorskiy’s answer,这适用于我的 Bash

      set 'sbsession=sbg&sbuser=lorem' 'http://hard.com/foo.flv'
      printf -v q 'Cookie: %s\r\n' "$1"
      ffplay -headers "$q" "$2"
      

      【讨论】:

        猜你喜欢
        • 2015-06-06
        • 2010-09-15
        • 2016-03-21
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-03
        • 1970-01-01
        相关资源
        最近更新 更多