上述現象我多年前一開始用 Picasa 就知道了,後來發現上傳到 blogger 的照片也會自動放到 Picasa。不過一向都很懶,最近閒閒的,就寫了幾個 script 用來處理影片及照片,這樣也可以節省上傳的時間。這一點不比較不知道,我們自己先處理過後,上傳節省的時間可真的是非常驚人啊!如果.........嘿嘿..........如果什麼我就不多說了,總之勤勞一點會讓自己省很多時間,而時間就是金錢啊!
上面連結是我整理的文件,裡面就有 script....系統當然要安裝 ffmpeg 及 netpbm 而且我在用的環境可不是 windows, 而是 ubuntu, 這一點對 windows 的朋友們只能說聲抱歉了!但是好消息是,這兩套軟體其實都有 windows 版的 ffmpeg 及 netpbm , 請自行上網直取最新版,用法當然都一樣,只是請自行寫 windows 下的 .bat 檔來用吧。
上面的網址有人反應不通,可以再試一次,或是直接 copy 底下的內容,不過我懶得貼 USAGE, 每個指令的 USAGE 都不一樣,請自行編輯自己的 USAGE:
- video2avi
把影片轉成 avi 格式,而且大小是 320x240, 這是因為我要上傳到 blog 解析度剛好[ "$#" = "2" ] || usage ffmpeg -i $1 -vcodec mpeg4 -s 320x240 -b 300k -r 30 -acodec copy -ar 22050 -ab 64k -f avi $2
- video2img
把影片存成每秒 n 張的圖片[ "$#" = "3" ] || usage ffmpeg -i $1 -r $2 -f image2 $3
範例: video2img MOV00001.mpg 10 micro-video-%03d
- video-from-img
[ "$#" = "3" ] || usage
ffmpeg -i $1 -r $2 -f image2 -c:v libx264 -r 30 $3
範例: video-from-img img%03d.png 1/5 out.mp4
如果照片沒照順序,需要用以下的命令,請自行參考
ffmpeg -i '*.png' -r 1 -f image2 -pattern_type glob -c:v libx264 out.mp4 - video2mp3
將影片中的音軌取出存成 mp3[ "$#" = "2" ] || usage ffmpeg -i $1 -vn -acodec libmp3lame -ab 192k $2
- video2vcddvd
將影片轉成 vcd 或是 dvd,可以分開成兩個指令較方便[ "$#" = "3" ] || usage [ "$2" = "vcd" ] && ffmpeg -i $1 -target ntsc-vcd $3 [ "$2" = "dvd" ] && ffmpeg -i $1 -target ntsc-dvd $3
- video_cut
[ "$#" = "4" ] || usage ffmpeg -i $1 -ss $2 -t $3 -f image2 $4
還有一種語法如下,只截一張: ffmpeg -i $1 -y -f image2 -ss $2 -vframes 1 $3 -ss 的時間單位也可以是秒,如下: ffmpeg -i $1 -y -f image2 -ss $2 -vframes 1 $3
- video_histogram
如果影片偏暗或是偏亮,可以用這個方法將亮度調「平均」,因為是計算的,絕對無法真的平均,所以除非你不喜歡影片亮度再試。[ "$#" = "2" ] || usage rm -rf /tmp/my-video; mkdir -p /tmp/my-video/{orig,hhh} ffmpeg -i $1 -r 30 -f image2 /tmp/my-video/orig/%05d.pnm pushd /tmp/my-video/orig for i in `\ls`; do FILE=`echo $i| cut -d. -f1`; pnmhisteq $i > ../hhh/${FILE}.pnm; done popd ffmpeg -i /tmp/my-video/hhh/%05d.pnm -r 30 $2
- img_resize - 用 ffmpeg
將相片縮小成 1600x1200, 這是 blog 預設的圖片大小,而通常相機也都遠大於這解析度。另外大家可能不知道,相機為了盡可能保持影片資訊,雖然是有壓縮的,但是其實是調成盡可能保存影片資訊,只要調整一下壓縮比例至 99% 或是 90% 就大大降低檔案大小。總之一句話,經過這樣轉換後,照片大小縮小很多很多。
底下指令因為太簡單,我並沒有寫成 script, 只是寫個範例ffmpeg -i $1 -s 1600x1200 a.jpg
- img_resize 2 - 用 netpbm
用 ffmpeg 處理照片有時會遇到無法讀取的問題,也就是有些相機的格式不被讀取, 譬如我就遇到如下的錯誤訊息:[mjpeg @ 0x139bcc0]error count: 71 [mjpeg @ 0x139bcc0]error y=23 x=156 Input #0, image2, from '20120206_133247.jpg': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0: Video: mjpeg, yuvj422p, 3264x2448, 25 tbr, 25 tbn, 25 tbc
因此只好改用 netpbm 來轉換,轉換命令如下列範例:jpegtopnm 20120206_133247.jpg | pnmscale -xsize=1600 -ysize=1200 | pnmtojpeg - > aaa.jpeg
- 將影片變成快動作/慢動作
這功能要由 mencoder 來實作,底下也只是範例,可以自行改成 script。mencoder 功能一樣很強大,算是編輯影片必備,例如將照片合成時加上配樂。mencoder -ovc copy -nosound -speed 5 in.mpg -o fast.mpg
- 切割音軌
用另一個軟體做的範例,ffmpeg 也可以做到cdparanoia -B : 整張 CD cdparanoida -B 3-7 : 只抓 3,4,5,6,7 音軌 cdparanoia "2[:35.00]-2[2:30.00]" : 抓第二軌
0 意見:
張貼留言