x264编码时设定帧率出了问题
dwing吧
全部回复
仅看楼主
level 10
mytbk 楼主
我从DVD拷出了一个50分钟的DVD文件,我用以下命令进行视频和音频的编码,片源VOB文件的帧率是30的,我编码时设成25,结果用ffmpeg混流后视频变成了1个小时,音视频不同步。
x264 --profile high --preset slow --fps 25 --crf 25 -o video.264 VTS_01_1.VOB
ffmpeg -i VTS_01_1.VOB -vn -acodec pcm_s16le -ar 32000 -f wav pipe:|neroaac -if - -ignorelength -q 0.3 -of audio.mp4
ffmpeg -i video.264 -i audio.mp4 -vcodec copy -r 25 -acodec copy -f mp4 output.mp4
2012年07月29日 04点07分 1
level 10
mytbk 楼主
如果没有--fps这个参数就没问题。我用默认的ffms和加上--demuxer lavf得到的视频长度都不对,难道真的要改成ffmpeg预处理后管道输入吗?
2012年07月29日 05点07分 2
x264里的参数--fps不是来改帧率的,是来指定帧率的。把30000/1001指定为25,当然不同步。
2012年07月29日 06点07分
最好不建议改帧率,原来是多少就是多少,改帧率多少会涉及删帧和插补帧,做不好会有轻微的卡顿现象,典型就是优酷上的很多都是这样。
2012年07月29日 06点07分
@free077go 哦,我还想问一下,像我那样把音频的采样率降低到32kHz再编码是否影响音质,我把视频里的音频转为pcm再用ffplay播放的时候看那频谱才过了3/5左右。
2012年07月31日 11点07分
level 13
跟我刚开始犯的错误一样,以为--fps是设定压制后的帧率,实际上不是……
2012年07月29日 07点07分 3
实际上这种情况应该怎样处理?在ffmpeg里用-r设置后再管道喂给x264这样可行?
2015年09月07日 09点09分
@lphlipinghao 可行。x264的--fps是指定输入源的fps的,但是ffmpeg有转换fps功能。不过你没必要喂管道,直接用ffmpeg调用libx264就行了
2015年09月07日 11点09分
level 12
因为总帧数不变的话,等于是把所有帧重新排列,假如是5000帧,以25帧/秒播放和以30帧/秒播放,肯定是以30帧/秒速度先播放完,出来的时长就不一样了。楼主把应该为30帧/秒播放的视频指定为25帧/秒播放,相当于是减速播放,时间就变长了。
2012年07月29日 08点07分 4
1