寫在前面
如果您對音視頻技術感興趣媳瞪,可以訂閱我的專題:音視頻專輯
也可以關注我的簡書賬戶: 張芳濤,我后期會發(fā)布更多的音視頻以及圖像處理方面的文章缨睡。
正文
視頻幀的翻轉(zhuǎn)和旋轉(zhuǎn)是常見的視覺操作诉探,可以用來創(chuàng)建各種有趣的效果,比如輸入的鏡像版本蜂林。
水平翻轉(zhuǎn)
水平鏡像的視頻版本-水平翻轉(zhuǎn)是用一個在表格中描述的hflip過濾器創(chuàng)建的。
描述 | 水平翻轉(zhuǎn)輸入視頻拇泣,因此輸出看起來像是從側(cè)面鏡像噪叙。過濾器沒有參數(shù) |
---|---|
語法 | -vf hflip |
為了測試testsrc視頻源的水平翻轉(zhuǎn),我們可以使用以下命令:
ffplay -f lavfi -i testsrc -vf hflip
我的測試命令和書里面的一樣霉翔,顯示效果如下圖:
垂直翻轉(zhuǎn)
對于垂直方向的輸入幀睁蕾,我們可以使用在表格中描述的vflip過濾器。
描述 | 垂直翻轉(zhuǎn)輸入視頻,因此輸出看起來像從頂部或底部鏡像 |
---|---|
語法 | -vf vflip |
左下方的圖像是在第25章中描述的rgbrestsrc模式子眶。為了得到它的垂直翻轉(zhuǎn)版本瀑凝,我們可以使用下一個命令:
ffplay -f lavfi -i rgbtestsrc -vf vflip
我自己的測試命令和書上的一樣,效果圖如下:
介紹旋轉(zhuǎn)
之前的FFmpeg版本包含特殊的過濾器旋轉(zhuǎn)臭杰,使視頻旋轉(zhuǎn)可以進入角度值粤咪。這個過濾器現(xiàn)在已被棄用,取而代之的是一個轉(zhuǎn)置過濾器渴杆,它允許旋轉(zhuǎn)并且可以選擇立即翻轉(zhuǎn)輸入寥枝。表中描述了轉(zhuǎn)置濾波器。
描述 | 將行與輸入的列進行轉(zhuǎn)置磁奖,如果選擇囊拜,也會翻轉(zhuǎn)結(jié)果 |
---|---|
語法 | transpose={0, 1, 2, 3} one from the values 0 - 3 is used |
*********** | 描述可用的值 |
0 | 輸入由90°逆時針旋轉(zhuǎn),垂直翻轉(zhuǎn) |
1 | 輸入是順時針旋轉(zhuǎn)90° |
2 | 輸入是逆時針旋轉(zhuǎn)90° |
3 | 輸入是順時針旋轉(zhuǎn)90°,垂直翻轉(zhuǎn) |
請注意,轉(zhuǎn)置濾波器的值0和3在視頻幀上同時提供兩個操作——旋轉(zhuǎn)和垂直翻轉(zhuǎn)比搭。這意味著值0的使用包括兩個過濾器的效果冠跷,下面兩個命令的結(jié)果相同:
ffplay -f lavfi -i smptebars -vf transpose=0
ffplay -f lavfi -i smptebars -vf transpose=2,vflip
看看我自己的測試效果:
如果使用如下命令行:
ffplay -f lavfi -i smptebars -vf transpose=0
顯示效果如下圖:
如果使用如下代碼:
ffplay -f lavfi -i smptebars -vf transpose=2,vflip
顯示效果如下圖:
類似地,在接下來的兩個命令中身诺,可以用兩個過濾器替換值3:
ffplay -f lavfi -i smptebars -vf transpose=3
ffplay -f lavfi -i smptebars -vf transpose=1,vflip
在接下來的章節(jié)中蜜托,我們描述了帶有插圖的轉(zhuǎn)置過濾器的每個值的用法。
逆時針旋轉(zhuǎn)90度霉赡,垂直翻轉(zhuǎn)
下一個命令以順時針方向旋轉(zhuǎn)90度的輸入:
ffmpeg -i CMYK.avi -vf transpose=0 CMYK_transposed.avi
我自己的測試命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=0 /Users/zhangfangtao/Desktop/newTest.mp4
原來的視頻:
順時針旋轉(zhuǎn)90度
下一個命令輸入90°旋轉(zhuǎn)順時針方向:
ffmpeg -i CMYK.avi -vf transpose=1 CMYK_transposed.avi
我的測試命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=1 /Users/zhangfangtao/Desktop/newTest.mp4
顯示效果如下:
逆時針旋轉(zhuǎn)90度
下一個命令輸入90°逆時針旋轉(zhuǎn):
ffmpeg -i CMYK.avi -vf transpose=2 CMYK_transposed.avi
我的測試命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=2 /Users/zhangfangtao/Desktop/newTest.mp4
顯示效果:
順時針旋轉(zhuǎn)90度盗冷,垂直翻轉(zhuǎn)
下一個命令輸入90°旋轉(zhuǎn)順時針方向和垂直翻轉(zhuǎn)它:
ffmpeg -i CMYK.avi -vf transpose=3 CMYK_transposed.avi
我的測試命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=3 /Users/zhangfangtao/Desktop/newTest.mp4
效果圖如下: