在 Windows 10 中读取动画 JPEG(“MVIMG_”)

在 Windows 10 中读取动画 JPEG(“MVIMG_”)

我的 Android 手机能够拍摄某种“动画” JPEG 图片,因为我无法正确使用该功能。

现在我已通过电缆将图片传输到桌面以节省空间,我怎样才能看到动画呢?

它们被命名为“MVIMG”并带有时间戳。如果我使用普通的 Google Photo 应用程序打开它们,它们会以动画形式循环播放。

Windows 中有类似的应用吗?我试过微软的 Stock Photos 应用,但它们仍然如此。在我的手机上,它们移动

答案1

所以显然这是一种由 JPEG 图像和 MP4 视频组成的自定义文件格式。

我发现这个 GitHub 存储库包含用于提取文件视频部分的 Bash 脚本。

由于(Apache-2.0 许可的)脚本非常简短且易于理解,因此我将在此引用它:

#!/bin/bash

function extract {
  local file=$1

  local newFile=${file/[.]jpg/.mp4}

  if [[ -f "$newFile" ]]; then
    echo "File $newFile exists, so ignoring $file"
  else
    # find the offset of the string 'ftypmp42' in the file
    local lines=( $(grep --only-matching --byte-offset --binary --text ftypmp42  $file| cut -f 1 -d:) )

    # check that it was only found once in the file.. if not, well script probably needs improvement
    if (( ${#lines[@]} == 1 )) ; then
      # the mp4 begins 3 byte before the string 'ftypmp42'
      local offset=$(( ${lines[0]} - 3))

      # extract everything beginning at offset to another file
      tail -c +$offset $file > $newFile
    else
      echo "Not processing $file because the string 'ftypmp42' did not occur exactly once in file"
    fi
  fi
}

for f in "$@"; do
  if [[ "$f" == MVIMG*jpg ]]; then
    extract $f
  else
    echo "Ignoring $f because its file name does not match MVIMG*jpg pattern"
  fi
done

要运行它,您需要和bash,它们几乎可以在任何 Linux 发行版上使用。由于您使用的是 Windows 10,因此您可以使用 WSL 和greptailDebian

相关内容