我可以通过“ffmepg”修复或更改颜色命令而无需重新编码文件吗?
PlayStation 5 和 YouTube 创建的 *.webm 文件之间似乎存在通信问题,因此颜色范围不正确。图片示例
通过 PS5 本身或者通过 Windows Media Player 或 VLC Player 播放时颜色是正确的。
作为测试,我通过 ffmpeg 尝试了以下操作:
ffmpeg -i *.webm -vf format=yuv420p -dst_range 1 -color_range 2 -c:v mpeg4 -vtag xvid -qscale 1 -y *.avi
然后我就得到了原来的颜色。
另一方面,在视频编辑程序 Davinci Resolve 18 中,颜色立即显示不正确。例如,我通过 FFMPEG 将容器从 *.webm 更改为 *.mp4,然后只需在 Davinci Resolve 程序中将剪辑属性“数据级别”从“自动/完整”设置为“视频”,然后视频就会以正常颜色显示。
原始文件的 ffmpeg -i:
ffmpeg version 2023-06-27-git-9b6d191a66-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 58. 13.101 / 58. 13.101
libavcodec 60. 21.100 / 60. 21.100
libavformat 60. 9.100 / 60. 9.100
libavdevice 60. 2.100 / 60. 2.100
libavfilter 9. 8.102 / 9. 8.102
libswscale 7. 3.100 / 7. 3.100
libswresample 4. 11.100 / 4. 11.100
libpostproc 57. 2.100 / 57. 2.100
Input #0, matroska,webm, from 'test.webm':
Metadata:
encoder : mkvmux-1.0.0
Duration: 00:00:11.31, start: -0.003000, bitrate: 46767 kb/s
Stream #0:0: Video: vp9 (Profile 0), yuv420p(pc, bt709), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn (default)
Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
也许我最终会在这里找到帮助,有了 YouTube 和 Sony/PlayStation 本身,你无法获得针对问题/错误的正确支持,而问题只会被推给其他人。
更新 03.07.2023:我认为/希望找到了解决方案。在我通过 MediaInfo 比较两个文件后屏幕截图 MediaInfo,我注意到了以下情况:
Color range : Limited
colour_range_Original : Full
变成:
color range : Full
colour_range_Original : Limited
使用命令:
ffmpeg -i *.webm -bsf:v vp9_metadata=color_range=tv -c copy *.webm
现在,上传到 YouTube 后,视频颜色正常。错误在哪里,是在创建的文件中(PS5)还是在读取文件中(YouTube 和 Davinci Resolve)