【问题标题】:Getting "unable to decode APP fields" while playing USB webcam stream through ffplay通过 ffplay 播放 USB 网络摄像头流时出现“无法解码 APP 字段”
【发布时间】:2019-03-31 08:41:43
【问题描述】:

我正在尝试在 Windows 中使用 ffplay 播放 USB 网络摄像头流(不确定它是哪种格式..)。我可以毫无问题地看到视频,但我一直在控制台中遇到错误。

ffplay.exe -f dshow -i video="罗技高清网络摄像头 C615" -loglevel 调试

[mjpeg @97a118cc80] 无法解码APP字段:处理输入时发现无效数据 check logs for more details

我真的需要担心这个错误吗?或者我需要提供的任何过滤器来解决这个错误。

注意:我尝试使用 ffmpeg 将流保存到文件中,但遇到了同样的问题。

提前致谢。

【问题讨论】:

  • 对于它的价值,我在 Thinkpad 上的集成网络摄像头上得到了相同的行为(完全相同的消息,当我以每秒 15 帧的速度录制时,每秒重复 15 次)。好像不影响输出,但是很烦人,因为它隐藏了ffmpeg的正常输出。
  • 是的!它不影响输出。我只是简单地将我的网络摄像头从“Logitech C615”更改为“Logitech C270”,它就不见了。仍然不确定错误的原因是什么。 @jpetazzo

标签: ffmpeg video-streaming webcam


【解决方案1】:

那些 APP 字段消息不是错误。您看到的是 Logitech 专有的motion-jpeg 格式,他们在许多网络摄像头中使用该格式。例如,我在 C270 和较新的 c922 中见过它。 mjpeg流包含一系列jpeg图像,有些是关键帧,完整的图像,有些是其他帧如delta帧,描述帧之间的差异。罗技所做的是通过将 H264 数据作为 APP 附件附加到 jpeg 帧上,将 H264 流嵌入到 mjpeg 流中,即它是流中的流。当您播放或转码 mjpeg 流中的数据时,ffmpeg 会遇到这些 APP 附件,并且不知道如何处理它们。我相信像 Skype 这样的程序能够同时读取外部 mjpeg 流和内部 H264 流。

如果您想亲自查看,可以从摄像头的 mjpeg 流中编码一个小视频,然后提取 jpeg 图像,然后查看 jpeg 图像的结构,您将看到嵌入的视频。

# create a small mp4, copying mjpeg stream off the cam for a second or two
$ ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy test.mp4

# extract the unaltered jpeg files inside the stream
$ ffmpeg -i test.mp4 -vcodec copy %03d.jpg

# view any of the jpeg files for APP attachments
$ exiv2 -pS 001.jpg

STRUCTURE OF JPEG FILE: 001.jpg address | marker       |  length | data
   0 | 0xffd8 SOI  
   2 | 0xffe0 APP0  |      33 | AVI1.....x.x....................
  37 | 0xffdb DQT   |      67 
 106 | 0xffdb DQT   |      67 
 175 | 0xffdd DRI   |       4 
 181 | 0xffe0 APP0  |       4 | ....
 187 | 0xffc0 SOF0  |      17 
 206 | 0xffda SOS  

看到 jpeg 上的那些 APP0 附件了吗?这就是解码器/播放器抱怨的嵌入式 H264 数据。

【讨论】:

  • 感谢您的回复..我现在将 Cam 更改为工作正常。 @Philo
  • @Syed 如果您觉得答案有帮助,请点赞。谢谢。
  • 解释得很好!谢谢!
  • 很好的解释,但是如果可能的话,如何隐藏这些警告?
  • @MickeyD 只需将输出丢弃到 Linux 上的 /dev/null (ffmpeg ... >/dev/null 2>&1) 或 Windows 上的等价物 stackoverflow.com/questions/313111/…
猜你喜欢
  • 2014-11-24
  • 2011-10-06
  • 2023-01-17
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 2011-01-19
  • 2018-04-05
  • 2012-08-18
相关资源
最近更新 更多