ffmpeg - 无法使用 FFMPEG CLI 将缩略图添加到 MP4
问题描述
在搜索了几个小时后,关于使用 CLI 将缩略图添加到 MP4 的最简单解决方案,我回到了开头的“FFMPEG”。虽然我一开始希望我能得到一个工作工具但没有,但我会坚持使用“FFMPEG”。
即使在更新存储库之后==> 同样的问题。
我遵循了官方文档中的确切代码,上面写着:
ffmpeg -i path/to/in.mp4 -i path/to/IMAGE.png -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic path/to/out.mp4
以下错误日志显示:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))
Press [q] to stop, [?] for help
[swscaler @ 0x1fd0860] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x1fd0860] No accelerated colorspace conversion found from yuv420p to rgb24.
[mp4 @ 0x1f747e0] track 1: codec frame size is not set
[mp4 @ 0x1f747e0] opus in MP4 support is experimental, add '-strict -2' if you want to use it.
Could not write header for output file #0 (incorrect codec parameters ?): Experimental feature
Error initializing output stream 0:2 --
Conversion failed!
我不知道如何解决这个问题。我阅读了网站的问题论坛,但没有发现类似的问题。所以我希望你们能伸出援手。
将考虑任何建议的编辑。
编辑1:
测试1:我从视频本身带来了一张图片(缩略图)并运行了命令。
Test2:我带来了一个独特的图像(缩略图),其分辨率与视频不同,但出现了相同的错误。
==>没用
编辑2:
第一的:
在将我的命令修复为这样之后,
ffmpeg -i path/to/in.mp4 -i path/to/IMAGE.png -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic -strict -2 path/to/out.mp4
我使用 VLC(视频播放器)查看了缩略图,所以它首先出现了。但是,当我用其他人替换视频和缩略图图像时,我运行了它运行平稳的命令,直到我再次使用 VLC 查看缩略图时,它才显示旧的缩略图图像,它似乎在“FFMPEG”过程中被缓存在某处。我不得不删除该文件夹并创建一个新文件夹以更新新的缩略图,但它再次“缓存”了第一个使用的缩略图并在 VLC 中显示。
这是 VLC 的问题还是“FFMPEG”正在做一些奇怪的事情?
第二:
在 VLC 中显示缩略图后,我想通过将其发送给 WhatsApp 上的联系人来测试此功能,但它没有显示。经过一番搜索,我意识到它可能与“og:image”元数据有关。有没有办法使用 CLI 编辑它?
第三:
此外,嵌入缩略图的视频无法在 Windows、iPhone 和 Android 上播放。当我使用 Windows 媒体播放器打开它时,它说
Windows Media Player 无法播放该文件。播放器可能不支持文件类型或可能不支持用于压缩文件的编解码器。
从这里我认为我必须与编解码器有关。
注意:缩略图显示在 Windows 文件资源管理器中(但不能播放视频)
你有什么主意吗?
解决方案
推荐阅读
- pine-script - 交叉和交叉功能不尊重我给松树脚本的参数
- assembly - STM指令后,为什么R6寄存器的内存位置是10、11、12?
- git - 从 master 恢复未推送的提交
- python-3.x - 合并两个或多个列表获得具有相同长度和统计信息的唯一组合
- sql - 如何使用查询替换 BQ 中的分区?
- python - 快速傅里叶变换(FFT) - 傅里叶分辨率问题
- extract - 创建人类基因中所有可能外显子的虚拟文库制备
- python - Python:等到函数在函数内部完成
- c++ - 使用填充的本地缓冲区 OpenCL 时像素值错误
- docker-compose - 如何在 docker-compose 中重用服务定义