【发布时间】:2016-02-16 13:45:39
【问题描述】:
我需要将 http 标头(用户代理和 ip)传递给 ffmpeg 命令。
我使用以下命令:
ffmpeg -y -timeout 5000000 -map 0:0 -an -sn -f md5 - -headers "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" -headers "X-Forwarded-For: 13.14.15.66" -i "http://127.0.0.1"
我运行一个本地 node.js 服务器来查看我得到的标头:
'use strict';
var express = require('express');
var server = express();
server.all('/*', function(req, res) {
console.log(JSON.stringify(req.headers));
res.sendFile('SampleVideo_1080x720_1mb.mp4', {root: '.'});
});
server.listen(80);
我不断收到一条错误消息,提示“在 HTTP 标头中未找到尾随 CRLF”。并且请求被卡住了。
如果我删除标题 - 一切正常。
我也尝试将两个标题放在一个字符串中,但我使用的任何换行符(\r\n、\r\n 等)都不起作用。
有人可以帮我弄清楚如何正确编写包含标题的此命令吗?
【问题讨论】:
-
只是好奇:您是否也尝试过使用两个单独的
-headers "<foo>\r\n"选项,每个选项在选项参数字符串的末尾都有自己的\r\n? -
是的。它没有用。我想我尝试了复制斜杠、连接标题等的完整矩阵。
-
发送它们时您遇到的具体问题是什么?接收者得到什么?
-
实际上我只是设置了一个小型本地服务器来测试 - 似乎我永远无法发送任何标题(即使它只是一个标题)
-
我的目标只是计算视频文件的 md5,所以这几乎是我从这个命令中需要的。我像你一样运行了跟踪,但我没有看到我的标头在请求中发送。
标签: http video command-line ffmpeg http-headers