ffmpeg:无法从 Azure 服务器读取文件(在本地和 AWS 上均可运行)

ffmpeg:无法从 Azure 服务器读取文件(在本地和 AWS 上均可运行)

我需要能够使用 ffmpeg 读取视频并将其帧提取为 JPG 图片。我使用以下命令:

./ffmpeg -y -r 25 -probesize 100M -analyzeduration 100M -i http://webserver/video.mp4 -q:v 5 /destination/image_%03d.jpg

如果视频存储在设备上或 Amazon AWS 服务器上,则可正常运行,但如果存储在 Windows Azure 服务器上,则无法正常运行。如果视频以 webm 格式编码,则可在任何地方运行,但出于某些原因,我需要将其编码为 mp4。

以下是 ffmpeg 的输出:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf70d7000] stream 0, offset 0x30: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf70d7000] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 960x540, 1236 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
http://server/video.mp4: could not find codec parameters
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://server/video.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf56.40.101
Duration: 00:00:01.44, bitrate: 1241 kb/s
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none, 960x540, 1236 kb/s, 25 fps, 25 tbr, 12800 tbn, 25600 tbc (default)
Metadata:
handler_name    : VideoHandler
[buffer @ 0xf703a000] Unable to parse option value "-1" as pixel format
Last message repeated 1 times
[buffer @ 0xf703a000] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0xf70dd190] Error applying options to the filter.
Error opening filters!

知道哪里出了问题吗?Azure 服务器会不会出问题?文件没有损坏,如果我下载并在本地播放,就可以正常播放。

答案1

您是否绝对确定 Azure 和 AWS 上的文件完全相同?就像“校验和匹配”一样?因为 webm 版本运行良好,这让我认为存储在 Azure 上的文件的索引存储在文件末尾,而对于在完成下载之前对文件进行流式传输和执行其他操作,您需要将其存储在开头。

Azure 输入文件可能还有其他问题,也许已损坏?还有这个 Stackoverflow 答案建议设置-probesize为 100 和-analyzeduration10M(您似乎拥有后者)。

相关内容