无法使用 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 文件获取信息的主要内容,如果未能解决你的问题,请参考以下文章

无法让 R 显示回归线(geom_smooth)?

FFmpeg drawtext - 无法从文件中加载字体[关闭]

无法使用 ffmpeg 保存 matplotlib 动画

ffmpeg 从 avi 文件生成无法播放的 MP4 文件

Xamarin Mac FFmpeg 启动路径无法访问

当我使用 ffmpeg 从视频中提取音频时,出现错误