我希望现在能够多次这样做,所以我问。
如果我有一个现有的视频或音频文件,ffmpeg,mplayer和其他媒体播放器至少可以检测到一些它的“propreties”之类的容器,编解码器和比特率时,可能各项质量和编码特定的设置等。
如何从现有文件中提取这些设置以便(直接)使用它们进行 ffmpeg 编码?
例如,我得到了一个使用一些设置mkv编码的视频x264和另一个未压缩的avi文件。我想“复制”用于 x264 mkv 文件的编码设置,以使用相同的设置对 avi 进行转码。
注意:我正在寻找一种无需人工将设置从解码器“翻译”到编码器的方法。如果我需要先提取设置并将其保存在某处,那没关系,但我希望能够简单地将读取选项提供给命令行或 ffmpeg 的预设|配置文件。
我设法生成了一个带有分形的 PNG 图像。
该图像高 65,536 像素,宽 65,536 像素。它太大了,无法解码到内存中并显示出来。它的边界附近可能有很多未使用的空间,我想修剪它以显着减少其面积。
我尝试了 GIMP 和 GraphicsMagick,但 GIMP 冻结了我的计算机并且 GraphicsMagick 未能为图像分配足够的内存。
我使用 Linux,我有 16GB 的 RAM。压缩后的图像大小为 6.2MB。
我可以在不将图像完全加载到内存中的情况下修剪边框吗?
FWIW,最后我使用了我学校的服务器,但我仍然想知道答案。
我正在尝试使用 FFmpeg 为视频添加水印。我有一个自定义版本的 FFmpeg,我正在创建它以保持二进制大小。我好像排除了FFmpeg在这个过程中读取PNG/JPG图片的能力:
ffmpeg -i ../weather.png
ffmpeg version 2.6.git Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/home/user/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg_build/include --extra-ldflags=-L/home/user/ffmpeg_build/lib --bindir=/home/user/bin --enable-gpl --disable-doc --enable-yasm --disable-decoders --enable-decoder=mpeg4 --enable-decoder=aac --enable-decoder=h264 --enable-decoder=mpegvideo --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=png --disable-encoders --enable-encoder=mpeg4 --enable-encoder=aac --enable-encoder=h264 --enable-encoder=libx264 --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-encoder=png --disable-parsers --enable-parser=aac --enable-parser=mpeg4video --enable-parser=ac3 --enable-parser=h261 --enable-parser=h264 --enable-parser=vc1 --enable-parser=mpegvideo --disable-demuxers --enable-demuxer=aac --enable-demuxer=h264 --enable-demuxer=mpegvideo --enable-demuxer=m4v --enable-demuxer=mov --enable-demuxer=vc1 --enable-demuxer=mp4 --enable-demuxer=concat --disable-muxers --enable-muxer=h264 --enable-muxer=mpeg1video --enable-muxer=mpeg2video --enable-muxer=m4v --enable-muxer=mov --enable-muxer=vc1 --enable-muxer=md5 --enable-muxer=mp4 --enable-protocols --enable-indev=v4l --enable-indev=v4l2 --disable-filters --enable-filter=aresample --enable-filter=scale --enable-filter=movie …Run Code Online (Sandbox Code Playgroud) 我有一个.eml包含 MS-Word 附件的电子邮件文件:
------=_Part_239376_662463351.1415605722579
Content-Type: application/msword;
name="=?GBK?B?1cK5scf4s8e53L7WudjT2s34wufT38fp0MXPoteo?=
=?GBK?B?sai1xLTwuLQoz8K6vszBMbrFKS5kb2M=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="=?GBK?B?1cK5scf4s8e53L7WudjT2s34wufT38fp0MXPoteo?=
=?GBK?B?sai1xLTwuLQoz8K6vszBMbrFKS5kb2M=?="
0M8R4KGxGuEAAAAAAAAA [rest of base64-encoded attachment]
Run Code Online (Sandbox Code Playgroud)
附件base64解码成功,文件内容正常。
但是如何解码文件名呢?
的值filename="" 似乎是GBK编码的,但 Python.decode('gbk')对它不起作用,返回相同的字符串:
>>> "1cK5scf4s8e53L7WudjT2s34wufT38fp0MXPoteo".decode('gbk')
u'1cK5scf4s8e53L7WudjT2s34wufT38fp0MXPoteo'
Run Code Online (Sandbox Code Playgroud)
那么,这个字符串是用什么编码的以及如何解码呢?
=?GBK?B?1cK5scf4s8e53L7WudjT2s34wufT38fp0MXPoteo?=
=?GBK?B?sai1xLTwuLQoz8K6vszBMbrFKS5kb2M=?=
Run Code Online (Sandbox Code Playgroud)