gpt4 book ai didi

php - 使用 CURL 像浏览器一样下载 ffmpeg

转载 作者:行者123 更新时间:2023-12-04 23:31:11 25 4
gpt4 key购买 nike

我想在 ffmpeg 参数中输入 HTTP 文件,我已经尝试过这段代码

<?php

$fname=time().'_myfile.mp3';
$cmd = "/usr/local/bin/ffmpeg -i 'http://tinyurl.com/url' -vn -b 64k -f mp3 -acodec libmp3lame - $fname";
header('Content-type: audio/mpeg');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$fname\"");
passthru($cmd);

>?

我试图传递 tinyurl URL,但 ffmpeg 无法创建文件。
如果我将其他一些直接 URL 传递给参数,则此代码可以正常工作。

我正在考虑创建一个 PHP 文件并使用带有适当标题的 CURL 并在输入参数中传递该 PHP 文件,这样行吗?
简而言之,如果输入不是直接链接,则 ffmpeg 失败。我应该怎么办?

有人可以帮我吗?

最佳答案

基于来自 http://getsatisfaction.com/soup/topics/reverse_lookup_for_tinyurls 的评论
你可以使用下面的 curl 函数来获取你应该能够按计划进行的真实 URL。

function resolve($url)
{
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_USERAGENT => "spider",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_NOBODY => 1
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch);
$header = curl_getinfo($ch);
curl_close($ch);
return $header['url'];
}

关于php - 使用 CURL 像浏览器一样下载 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com