gpt4 book ai didi

FFMPEG 用于下载时失真的视频缩略图

转载 作者:行者123 更新时间:2023-12-04 22:54:54 28 4
gpt4 key购买 nike

我正在从 mp4 中获取缩略图。
当我使用 -c:v mjpeg ,缩略图在浏览器中显示正常,但在我的 Mac 上预览时完全变形。如果我使用 -c:v jpeg2000该图像在我的 Mac 上看起来不错,但它没有显示在浏览器中。
完整命令:ffmpeg -ss 3 -i https://some_site/some_video.mp4 -vf thumbnail,scale=480:480 -q:v 2 -frames:v 1 -f image2 -c:v jpeg2000 -r 1 -vframes 1 tmp/my_thumbnail.jpg-对-ffmpeg -ss 3 -i https://some_site/some_video.mp4 -vf thumbnail,scale=480:480 -q:v 2 -frames:v 1 -f image2 -c:v mjpeg -r 1 -vframes 1 tmp/my_thumbnail.jpg我需要使用什么编码才能使生成的缩略图既可以在浏览器中查看,又可以在 Mac 上预览?
这是扭曲的图像的样子:
enter image description here
我开始认为这是一个 macOS 问题,但即使是这样,我也想知道 FFMPEG 是否有解决方案,以便即使使用有问题的操作系统的用户也可以正确预览图像。
输出:

ffmpeg version 4.1.5 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8.3.0 (Alpine 8.3.0)
configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --disable-debug
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://some_site/some_video.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1mp42
creation_time : 2020-02-28T16:46:30.000000Z
Duration: 00:00:06.23, start: 0.000000, bitrate: 2004 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x480 [SAR 1:1 DAR 1:1], 1951 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
Metadata:
creation_time : 2020-02-28T16:46:29.000000Z
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 48 kb/s (default)
Metadata:
creation_time : 2020-02-28T16:46:29.000000Z
File 'tmp/my_thumbnail.jpg' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[swscaler @ 0x55acb21fbb00] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'tmp/my_thumbnail.jpg':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1mp42
encoder : Lavf58.20.100
Stream #0:0(und): Video: mjpeg, yuvj444p(pc), 480x480 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc (default)
Metadata:
creation_time : 2020-02-28T16:46:29.000000Z
encoder : Lavc58.35.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
[Parsed_thumbnail_0 @ 0x55acb21e35c0] frame id #58 (pts_time=1.933333) selected from a set of 97 images
frame= 1 fps=0.0 q=2.0 Lsize=N/A time=00:00:01.00 bitrate=N/A dup=1 drop=1 speed=2.04x
video:39kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

最佳答案

它可能不喜欢日志 (yuvj444p) 中显示的 4:4:4 子采样。
ffmpeg这被称为像素格式。编码器 mjpeg 支持 yuvj420p、yuvj422p 和 yuvj444p,如 ffmpeg -h encoder=mjpeg 所示在支持的像素格式下。默认 ffmpeg会自动尝试选择破坏性最小的像素格式,但蹩脚的解码器可能不支持更复杂的格式。
您可以使用 format filter 输出特定的像素格式或旧版 -pix_fmt输出选项:

ffmpeg -ss 3 -i https://some_site/some_video.mp4 -vf "thumbnail,scale=480:480,format=yuvj420p" -q:v 2 -frames:v 1 tmp/my_thumbnail.jpg
4:2:0 (yuvj420p) 将是最广泛支持的,但请先尝试 4:2:2 (yuvj422p),因为它可能看起来会稍微好一些。
其他工具也可以处理这个问题,例如 GIMP(文件 → 导出为 → 导出 → 高级选项 → 二次采样)。

关于FFMPEG 用于下载时失真的视频缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62941679/

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