【问题标题】:What does EOI missing mean for mjpeg?EOI 缺失对 mjpeg 意味着什么?
【发布时间】:2018-04-08 10:55:13
【问题描述】:

编码时我有时会看到这个 ffmpeg 警告

[mjpeg @ 0x5584bda90320] EOI missing, emulating

已经用谷歌搜索了,但找不到任何有用的东西。 EOI 代表什么?是什么原因造成的?

这里是使用的完整命令的示例:

ffmpeg -f image2 -thread_queue_size 3072 -framerate 15.9 -i /var/www/videomail/production/source/var/production/tmp/clients/videomail.io/11e
7-bd8d-9a4e4a70-86c9-13af52a474c3/frames/%d.jpg -y -an -vcodec libx264 -filter:v drawtext=fontfile=/var/www/videomail/production/source/src/assets/fonts/Varela-Regular.ttf:text
=www.videomail.io:fontsize=12:fontcolor=0xFFFFFF@0.3:x=text_h:y=main_h-(text_h*2):shadowcolor=0x111111@0.15:shadowx=1:shadowy=1,scale=trunc(iw/2)*2:trunc(ih/2)*2 -crf 23 -pix_f
mt yuv420p -preset ultrafast -profile:v baseline -level:v 3.1 -movflags +faststart -loglevel warning /var/www/videomail/production/source/var/production/tmp/clients/videomail.i
o/11e7-bd8d-9a4e4a70-86c9-13af52a474c3/videomail_preview.mp4

这里是发生时的报告:https://gist.github.com/binarykitchen/d8643bf0c0fb18f1b41cab7a322deb91

【问题讨论】:

  • 图像结束(标记)。显示完整的日志。您是否在转换过程中更新输入?
  • 不,在此处转换期间不更改输入源。还有什么原因?
  • 完整日志丢失。
  • @Mulvya 添加了示例命令 - 可能有帮助吗?由于日志级别,我没有完整的日志
  • 添加 -report 以生成日志。这与输入解析有关,与命令无关。

标签: ffmpeg


【解决方案1】:

您的某些输入文件略有损坏。如果缺少图像结束标记,大多数 JPEG 查看器甚至不会警告您。

【讨论】:

  • 我明白了。我正在使用这个 npm 包生成 jpg 文件github.com/binarykitchen/canvas-to-buffer ...我应该在缓冲区末尾修改一些特殊字节以避免 EOI 标记警告吗?
  • 问题是文件内容是否损坏,或者只是缺少标记。您可以将 "\xFF\xD9" 附加到所有 jpeg 文件,这很可能会使警告静音,但我不能保证生成的视频是否看起来不错。
  • 是的,这里有更多关于 wiki en.wikipedia.org/wiki/JPEG_File_Interchange_Format 的规范...将尝试修补画布到缓冲区,看看这是否会有所作为
  • 检查了画布到缓冲区库,它确实有 jpeg 文件的 EOI 标记。见github.com/binarykitchen/canvas-to-buffer/blob/master/test/…。所以一定是别的东西。
  • 从要点来看,文件 /var/www/videomail/production/source/var/production/tmp/clients/videomail.io/11e 7-bd8d-9a4e4a70-86c9-13af52a474c3/ frames/1.jpg 已损坏。可能没有可以从中恢复的图片。但这只是一张图片,是第一张。
猜你喜欢
  • 1970-01-01
  • 2013-01-17
  • 2011-12-28
  • 2020-10-12
  • 2011-06-11
  • 2010-10-02
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多