无法使用 ffmpeg 从 Smooth Streaming Manifest 文件获取信息
Posted
技术标签:
【中文标题】无法使用 ffmpeg 从 Smooth Streaming Manifest 文件获取信息【英文标题】:Can't obtain information with ffmpeg from Smooth Streaming Manifest file 【发布时间】:2015-05-05 05:50:28 【问题描述】:我正在尝试使用 ffmpeg 工具(ffprobe 和 ffplay)获取 Microsoft Smooth Streaming 协议流的详细信息,但是当我运行下一个命令时:
ffprobe -i http://b31282.cdn.telefonica.com/31282/Manifest
我得到这个:
http://b31282.cdn.telefonica.com/31282/Manifest: Invalid data found when processing input
我假设这个 Manifest 文件是正确的并且符合 Smooth Streaming 的标准。这是 Manifest 文件的简短摘录:
<SmoothStreamingMedia MajorVersion="2" MinorVersion="0" Duration="0" TimeScale="10000000" IsLive="TRUE" LookAheadFragmentCount="2" DVRWindowLength="6000000000" CanSeek="TRUE" CanPause="TRUE">
<Protection>
<ProtectionHeader SystemID="9a04f079-9840-4286-ab92-e65be0885f95">oioAAAIAAQCUAjwAV...</ProtectionHeader>
</Protection>
<StreamIndex Type="audio" Name="audio_esp" Language="esp" Subtype="" Chunks="0" TimeScale="10000000" Url="QualityLevels(bitrate)/Fragments(audio_esp=start time)"></StreamIndex>
<StreamIndex Type="video" Name="video" Language="" Subtype="" Chunks="0" TimeScale="10000000" Url="QualityLevels(bitrate)/Fragments(video=start time)"></StreamIndex>
</SmoothStreamingMedia>
是 Fedora 21 和 ffmpeg 版本,配置是:
ffmpeg version git-2015-02-27-d490b26
configuration: --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264
libavutil 54. 19.100
libavcodec 56. 26.100
libavformat 56. 23.105
libavdevice 56. 4.100
libavfilter 5. 11.102
libswscale 3. 1.101
libswresample 1. 1.100
libpostproc 53. 3.100
PD:我更喜欢只使用 ffmpeg 工具
PD2:与 Microsoft Smooth Streaming Manifest 文件相同:
ffmpeg -i http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest
Invalid data found when processing input
谢谢大家
【问题讨论】:
我会说显而易见的答案是 FFmpeg 不支持您正在尝试的操作。 【参考方案1】:不支持流畅的解复用器。
这里是official doc,平滑流不会出现在解复用部分。当您询问支持哪些类型时,这是输出
chang@p300a:~/git-root/FFmpeg$ ffmpeg -formats|grep smooth
ffmpeg version n4.2.3-3-gbf7ed52c25 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration: --enable-libv4l2 --enable-zlib --enable-vaapi --enable-pthreads --enable-vdpau --enable-xlib --enable-libv4l2 --enable-libx264 --enable-gpl --enable-gnutls --enable-openssl --enable-nonfree --disable-gnutls --enable-libxml2 --enable-libdrm
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
E smoothstreaming Smooth Streaming Muxer
【讨论】:
以上是关于无法使用 ffmpeg 从 Smooth Streaming Manifest 文件获取信息的主要内容,如果未能解决你的问题,请参考以下文章