刚才在看国漫 散修之王,发现第19集的帧率似乎有问题,为24.97,而不是其他集的25。
源文件为 散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.mkv
205M。这个mkv本身帧率就有问题,转换成 mp4 就显示为 24.97。
那么,我们就用 ffmpeg 重新压制一下,让它的码率跟其他集数的码率一致。
我用下面的ffmpeg命令进行了重压制:
ffmpeg -i "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.mp4" -map 0:V -c:v libx264 -r 25 -b:v 2500k -maxrate 5000k -bufsize 10M -map 0:a -c:a copy "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.new.mp4"
说明
-map 0:V 映射视频流,大写的V表示去掉图片封面的视频流,否则你必须指定图片的编码器,0表示第一个输入文件,
因为我们的mp4有2个音频流,所以必须用map参数进行映射,否则就只剩下一个音频流了。
-c:v libx264 指定视频的编码器为libx264,avc编码,同原编码
-r 25 指定帧率为25
-b:v 2500k -bufsize 10M 指定目标码率为2500k, 生成最终视频流的码率不低于2500k,
-maxrate 5000k 指定最大码率为5000k,随便写的,比较大了,3000k就行了,不要低于目标码率
-bufsize 10M 缓存区大小,通常是最大码率的2倍
一定要指定码率来控制文件大小,不要用无法控制文件大小的质量参数
-map 0:a -c:a copy 复制所有的音频流,此文件中有2个音频流
最终输出的文件帧率为25,大小为229M,因为我的码率2500k,设置得比原来的mp4的码率2390左右大了一点,不过也无所谓了。
当然,直接从mkv重压制成mp4也是可以,只要将l输入文件mp4改成mkv就行了:
ffmpeg -i "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.mkv" -map 0:V -c:v libx264 -r 25 -b:v 2500k -maxrate 5000k -bufsize 10M -map 0:a -c:a copy "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.new.mp4"
源文件为 散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.mkv
205M。这个mkv本身帧率就有问题,转换成 mp4 就显示为 24.97。
那么,我们就用 ffmpeg 重新压制一下,让它的码率跟其他集数的码率一致。
我用下面的ffmpeg命令进行了重压制:
ffmpeg -i "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.mp4" -map 0:V -c:v libx264 -r 25 -b:v 2500k -maxrate 5000k -bufsize 10M -map 0:a -c:a copy "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.new.mp4"
说明
-map 0:V 映射视频流,大写的V表示去掉图片封面的视频流,否则你必须指定图片的编码器,0表示第一个输入文件,
因为我们的mp4有2个音频流,所以必须用map参数进行映射,否则就只剩下一个音频流了。
-c:v libx264 指定视频的编码器为libx264,avc编码,同原编码
-r 25 指定帧率为25
-b:v 2500k -bufsize 10M 指定目标码率为2500k, 生成最终视频流的码率不低于2500k,
-maxrate 5000k 指定最大码率为5000k,随便写的,比较大了,3000k就行了,不要低于目标码率
-bufsize 10M 缓存区大小,通常是最大码率的2倍
一定要指定码率来控制文件大小,不要用无法控制文件大小的质量参数
-map 0:a -c:a copy 复制所有的音频流,此文件中有2个音频流
最终输出的文件帧率为25,大小为229M,因为我的码率2500k,设置得比原来的mp4的码率2390左右大了一点,不过也无所谓了。
当然,直接从mkv重压制成mp4也是可以,只要将l输入文件mp4改成mkv就行了:
ffmpeg -i "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.mkv" -map 0:V -c:v libx264 -r 25 -b:v 2500k -maxrate 5000k -bufsize 10M -map 0:a -c:a copy "散修之王.San.Xiu.Zhi.Wang.S01E19.2024.1080p.WEB-DL.AVC.DDP2.0-PanWEB.new.mp4"