gpt4 book ai didi

video - 将 14 位 TIF 图像转换为 H264 编码帧

转载 作者:行者123 更新时间:2023-12-04 23:10:09 30 4
gpt4 key购买 nike

背景
我正在尝试将 tiff 图像转换为 h.264 编码帧。我正在使用 FFMPEG 这样做。使用 PNG,我可以使用以下命令进行转换

./ffmpeg -loglevel error -hide_banner -i /path/to/input.png -c:v libx264 -pix_fmt yuv420p10le /path/to/outputFrame.h264
这很好用,给了我一个合适的框架。
PNG是16位灰度。
我使用 14 位灰度 tif 作为输入尝试了以下操作
./ffmpeg -loglevel error -hide_banner -i /path/to/input.tiff -c:v libx264 -pix_fmt yuv420p10le /path/to/outputFrame.h264
并得到一个错误: This format is not supported (bpp=14, bppcount=1)我读过 elsewhere

FFmpeg does support upto 16 bpc RGB TIFFs or 8 bit YUV TIFFs or 16 bitgrayscale ones..


所以使用 imagemagick 识别功能来验证我的 tif
它表示它确实是一个 14 位灰度的灰度图像。
所以我尝试了一个 10 位版本,这给了我上面相同的错误,只是现在是 bpp=10 而不是 bpp=14。
然后我发现 pix-fmt 关闭了,所以我尝试了 gray10le 和 10 位图像,但没有成功。同样的错误。
无论如何,我都希望获得图像的完整位深度,因此更喜欢 16 或 14 位解决方案。
我的问题
如何获取 14 位 TIF 并使用 ffmpeg 或 Imagemagick 将其转换为 h264 编码帧,保持 h264 允许的最高位深度?我也不想转换为中间格式。我在 CentOS Linux 上运行
更新
当我使用 TIF 将深度强制降低到 8 并将其发送到上面的 ffmpeg 命令中时,它确实通过了,但是当我在 VLC 中打开框架时,它不会像我做同样的事情时那样出现一个 16 位灰度 PNG...
更新 2
根据评论,我尝试将 tif 强制为 16 位灰度,并且与我在以 PNG 为中心的 ffmpeg 命令中的原始像素格式一起使用。
我仍然很难在 VLC 中显示框架,但这可能是由于图像的大小。它相当大。我将尝试平铺它以确保数据完好无损。如果它不完整,问题仍然存在。如果它完好无损,我只会“回答我自己的问题”

最佳答案

正如 Kesh 在评论中提到的:

FFmpeg does not have any non-multiple-of-8 grayscale pix_fmt, whichseems to be the root of your problem. Could you "upsample" tiff datato 16-bit grayscale with imagemagick (either as another tiff file or aset of PNG files)? Then, you should be able to feed those images toFFmpeg to create h264 stream.


他是对的,我确保我的 TIFF 是 16 位灰度而不是 14 位灰度,并且它进入 FFMPEG 没有问题。
然后我平铺了我的数据以检查它并确保向 h264 的转换按计划进行。这看起来不错的样子。
TL;DR 答案
如果您希望它们正确编码为 h.264,请确保进入 FFMPEG 的灰度 TIF 为 8 位或 16 位(8 的倍数)位深度。

关于video - 将 14 位 TIF 图像转换为 H264 编码帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71507058/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com