我有许多不同格式的视频文件(主要是avi)。例如,一些相关的线从ffprobe
:将任何视频转换为iPhone - 转码逻辑/算法?
Duration: 02:27:14.70, start: 0.000000, bitrate: 664 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 608x256 [PAR 1:1 DAR 19:8], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 96 kb/s
Duration: 00:20:51.84, start: 0.000000, bitrate: 3286 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s
Duration: 01:26:01.84, start: 0.000000, bitrate: 845 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 704x544 [PAR 1:1 DAR 22:17], 25 fps, 25 tbr, 25 tbn, 30k tbc
Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
Duration: 01:42:25.68, start: 0.000000, bitrate: 952 kb/s
Stream #0.0: Video: h264 (High), yuv420p, 600x244 [PAR 1:1 DAR 150:61], 25 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 112 kb/s
正如你所看到的,比特率,视频尺寸,编解码器而有所不同。想要写一个脚本(bash,perl)什么可以将它们转换为iPhone的ffmpeg
。
随着谷歌搜索,我发现了许多不同的ffmpeg配置文件,但所有的配置文件是“静态”,例如,将视频转换为相同的分辨率,这可能不是正确的方式,因为我有许多不同的视频分辨率与许多不同的比特率。 (这也适用于音频)。
我可以写脚本 - 但需要一个基本问题的帮助。
我需要帮助算法如何计算ffmpeg
参数从上述ffprobe
结果的值。例如。当有视频704x544和845kb/s和另一个较小的尺寸为640x480但3200kb/s比特率的视频 - 如何在脚本中计算ffmpeg
的“正确值”?
什么是正确的算法/逻辑转码为所需的设备的视频?(在我的情况下iPhone)
如果有人照顾,我ffmpeg重新编译与“非自由”的编解码器,并mencoder(从mplayer包)也。
第二:在avi容器中有很多视频已经是mpeg4格式。如何确定“最快”的转换配置文件?意思是一个配置文件,其中ffmpeg
将只执行较少可能的计算,因此可能会保持不变:格式mpeg4,大小,比特率和“only”将更改容器格式。这可能吗?
我读了很多ffmpeg
SO问题,但没有找到答案 - 也许我错过了什么。有人能指点我一些好文件吗?
关于什么的我问的是excatly一下:__then调整到你need__任何格式。当你有10000个文件时,不可能手动测试它们 - 需要一些逻辑(算法)如何确定给定文件的BEST格式。无论如何谢谢你的回答。 ;) – cajwine