Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何使用FFMPEG对要在DLink DSM-520上播放的视频进行编码?_Video_Encoding_Ffmpeg_Mencoder - Fatal编程技术网

Video 如何使用FFMPEG对要在DLink DSM-520上播放的视频进行编码?

Video 如何使用FFMPEG对要在DLink DSM-520上播放的视频进行编码?,video,encoding,ffmpeg,mencoder,Video,Encoding,Ffmpeg,Mencoder,我已经搜索、测试了一个多星期,结果一无所获。我想使用FFMPEG将mp4和mkv转换为AVI文件,这些文件将在我的DLink DSM-520上播放。门科德会做的。FFMPEG生成的文件导致播放器在视频中锁定不到一分钟。首先,我使用Mencoder(从PocketDIVXEncoder生成的test.bat文件中提取)对文件进行编码: mencoder.exe ftwd105.mp4 -af volnorm -srate 44100 -oac mp3lame -lameopts mode=0:cb

我已经搜索、测试了一个多星期,结果一无所获。我想使用FFMPEG将mp4和mkv转换为AVI文件,这些文件将在我的DLink DSM-520上播放。门科德会做的。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,结果相同。

您的
ffmpeg
命令使用本机编码器
mpeg4
。您可以尝试使用
libxvid
代替。当然,您需要安装并使用
重新编译ffmpeg——启用libxvid
我忘了提到我使用了libxvid编解码器也有相同的结果。另一个想法是在完全输出模式下使用
mediainfo
,而不是
ffprobe
,并进行区分。您的
ffmpeg
命令使用本机编码器
mpeg4
。您可以尝试改用
libxvid
。当然,您需要安装并用
重新编译ffmpeg>--启用libxvid
我忘了提到我也使用了libxvid编解码器,并且得到了相同的结果。另一个想法是在完全输出模式下使用
mediainfo
,而不是
ffprobe
,并进行区分。