使用stereo3d滤镜可以方便的实现3D电影左右格式(或上下格式)到红蓝格式的转换(需要较新版本的ffmpeg和ffplay)。
如使用ffmpeg生成红蓝格式,原视频1280x720,即左右各为640x720,若要使转换后仍为1280x720,生成mpeg4+mp3+mp4的文件,则对应处理为
ffmpeg -i "SRC.mp4" -vf "stereo3d=sbs2l:arcd,scale=1280:720" -vcodec mpeg4 -acodec libmp3lame -b:v 4096k -b:a 96k -aspect 16:9 -s 1280x720 -f mp4 out.mp4
若生成h264的mkv纯视频文件,则对应处理为(生成音频和输出最终文件不再详述,可参考我发的《AVC_AAC压制》里面的内容)
ffmpeg -i "SRC.mp4" -vf "stereo3d=sbs2l:arcd,scale=1280:720" -pix_fmt yuv420p -f yuv4mpegpipe -an -v 0 - | x264 --crf 20 --tune film --demuxer y4m -o 01_video.mkv -
若要使用ffplay直接观看,则可以使用
ffplay -vf "stereo3d=sbs2l:arcd" SRC.mp4
但此时视频分辨率只有640x720,且没有发现别的什么方式可以改变长宽比,但此时可以做快进等操作
还有一种方式可以通过管道调整长宽比,但此时只能暂停,不能做快进等操作,对应处理为
ffmpeg -i "SRC.mp4" -vf "stereo3d=sbs2l:arcd,scale=1280:720" -pix_fmt yuv420p -vcodec rawvideo -acodec pcm_s16le -f matroska - | ffplay -i -