大家好,周末继续努力学习,冲冲,奥利给!
今天主要还是分享ffmpeg命令的一些操作:提前像素格式和PCM数据、如何利用ffmpeg进行命令转封装。
ffmepg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420P_orig.yuv
效果如下:
播放花屏,主要是分辨率不对
修改一下:
现在就播放正常了
ffmpeg -i test_1280x720.mp4 -t 6 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv
效果如下:
分辨率小了,所以播放变模糊了
参数说明:
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb
我们把转换结果播放试试:
ffplay -i rgb24_320x240.rgb -pixel_format rgb24 -video_size 320x240
注:这里的 -video_size表示视频大小。
ffmpeg -s 1280x720 -pix_fmt yuv420p -i yuv420p_1280x720.yuv -pix_fmt rgb24 rgb24_1280x720.rgb
效果如下,我们来播放一下:
ffplay -pixel_format rbg24 -video_size 1280x720 -i rgb24_1280x720.rgb
我们直接来看案例:
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -sample_fmt s16 48000_2_s16.wav
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -codec:a pcm_s16le out2_s16le.wav
参数说明:
通过上面你会发现这里指定了三种输出格式:s16le和s16和pcm_s16le;那这三种格式我们可以从哪里可以查看说明:
s16le和pcm_s16le:
ffmpeg -encoders | findstr pcm
ffmpeg -muxers | findstr PCM
s16:
我们来看一下这些转换后的视频播放效果:
ffplay -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm
我们可以发现只有声音没有图像出来:
ffmpeg -i test.mp4 -t 60 -codec copy out.mp4
ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv
ffmpeg -i test.mp4 -r 15 output2.mp4
ffmpeg -i test.mp4 -b:v 400k output_b.mkv
ffmpeg -i test.mp4 -b:a 192k output_ba.mp4
ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4
第五和第六和上面其他操作方法一样,我就不演示具体效果了,不熟悉的朋友可以自己动手练习一下。
以上操作都是一些简单的动手操作,明白里面参数的意思就行;更多框架分析,我们后期见;