一个多星期以来,我一直在搜索,测试,但一无所获。我想使用 FFMPEG 将 mp4 和 mkv 转换为将在我的 DLink DSM-520 上播放的 AVI 文件。Mencoder 会做到的。FFMPEG 生成的文件会导致播放器在视频中锁定不到一分钟。首先,这是我使用 Mencoder 对文件进行编码的内容(从 PocketDIVXEncoder 生成的 test.bat 文件中抓取:
mencoder.exe ftwd105.mp4 -af volnorm -srate 44100 -oac mp3lame -lameopts mode=0:cbr:br=128 -noodml -vf pp=ac,scale=720:404,crop=720:400,harddup -sws 9 -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:last_pred=2:vstrict=1:threads=2:vmax_b_frames=0:vbitrate=1200 -ffourcc XVID -o ftwd105_HDTV.avi
输出文件在 DSM-520 上完美播放。使用 FFPROBE 查看文件,我看到:
Input #0, avi, from 'ftwd105_HDTV.avi':
Metadata:
encoder : MEncoder Redxii-SVN-r37527-4.9.3 (x86_64)
Duration: 00:44:32.96, start: 0.000000, bitrate: 1193 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 720x400 [SAR 1:1 DAR 9:5], 1053 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 24k tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p, 128 kb/s
所以现在我尝试用 FFMPEG 做同样的事情。
ffmpeg -i ftwd105.mp4 -vcodec mpeg4 -vtag XVID -b:v 1200k -s 720x400 -acodec libmp3lame -ab 128k -ar 44100 -ac 2 -f avi ftwd105_ffmpeg.avi
此文件无法在媒体播放器上播放。它播放断断续续,仅单击声音约 15-30 秒,然后冻结。用 FFPROBE 看,它看起来和 Mencoder 创建的完全一样。
Input #0, avi, from 'ftwd105_ffmpeg.avi':
Metadata:
encoder : Lavf57.0.100
Duration: 00:44:33.14, start: 0.000000, bitrate: 1305 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 720x400 [SAR 1:1 DAR 9:5], 1165 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 24k tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p, 128 kb/s
所以现在我使用 Xvid4PSP 对视频进行编码。它播放得非常好,FFPROBE 显示了这一点:
Input #0, avi, from 'ftwd105_ps2.avi':
Metadata:
encoder : VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build 2550/release)
Duration: 00:44:33.09, start: 0.000000, bitrate: 861 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x400 [SAR 1:1 DAR 9:5], 723 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
它使用高级简单配置文件,所以我查找并更改了我的 FFMPEG 选项:
ffmpeg -i ftwd105.mp4 -vcodec mpeg4 -vtag XVID -b:v 1200k -s 720x400 -profile:v 15 -level 0 -acodec libmp3lame -ab 128k -ar 44100 -ac 2 -f avi ftwd105_ffmpeg.avi
但是,虽然使用 FFPROBE 的输出文件看起来与 Xvid4PSP 制作的输出文件相同,但它仍然无法在 DSM-520 上播放。
Input #0, avi, from 'ftwd105_ffmpeg_asp.avi':
Metadata:
encoder : Lavf57.0.100
Duration: 00:44:33.14, start: 0.000000, bitrate: 1305 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x400 [SAR 1:1 DAR 9:5], 1165 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 24k tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p, 128 kb/s
所以现在我很茫然。FFMPEG 是否无法生成 DSM-520 可以播放的文件?我想在 Mencoder 上使用 FFMPEG 的原因是它要快得多。FFMPEG 15 分钟需要 Mencoder 40。
我应该注意到,由 FFMPEG 创建的所有文件都可以在 PC 和我的 Visio 电视上正常播放。DSM-520 连接到不是智能电视的卧室电视。
编辑:我还尝试使用 libxvid 代替 mpeg4,结果相同。