懶的更新到blogger了

本站2010年10月以後的,都更新到google docs上了:
連結在這裡

2009/03/02

想轉出品質好一點的 flv 檔

一直使用 ffmpeg 在轉 flv ,然後把轉完的檔案用 flowplayer 掛在網頁裡,

使用的 DV 拍出來是 720x480 的 mpeg-2 影片,
通常使用的轉檔參數是:
ffmpeg -y -i input.mpg -f flv -r 10 -qscale 10 -s 640x360 -ab 56 -ac 1 -ar 11025 output.flv

可是一直覺得,自己轉的影片,如果想要品質好一點,檔案都超大,
所以後來都是把 frame rate 調到 15 or 10 才覺得檔案大小比較能接受。

但是抓過 youtube上的影片後,都覺得人家轉的檔案大小不會太大,品質又好,
就是不知道那是用什麼軟體,或下什麼參數。

網路上看到有人說可以把影片轉成 mp4(H.264/AAC),然後再把副檔名改成 flv 也是可以播的。
所以當然要試試看,
可是打上:
ffmpeg -y -i input.mpg -vcodec libx264 output.mp4 (這裡的H.264是用 libx264)
結果每打必當...也不是當機啦,就是ffmpeg就馬上出錯停掉。
(我是在 http://ffdshow.faireal.net/mirror/ffmpeg/ 抓的...用的是2008年不知幾月的版本)

後來查到 VirtualDub 好像也可以加 x264 去轉影片,所以就抓下來轉轉看,
VirtualDub(我喜歡用portable的版本):
http://portableapps.com/apps/music_video/virtualdub_portable
另外要安裝x246encoder:
http://sourceforge.net/projects/x264vfw/

隨便開了一個影片來轉,轉成 x264/mp3的avi影片,然後再用ffmpeg去換一個包裝 ^^
ffmpeg -i input.avi -vcodec copy output.mp4
(-acodec 不用設,因為包成 mp4 會自重設成 AAC )
果然把 output.mp4 改名成 output.flv 後,再由flowplayer是可以成功播放的,

好,馬上把DV拍出來的影片拿出來轉.....
不過,結果真令人洩氣,因為VirtualDub 不能開啟我用 DV 拍的 mpeg-2影片...

其實再重新想想,這本來明明就是 ffmpeg 就可以做到的事情,只要把 ffmpeg 搞好不就得了,
可是我又不會在 windows 裡 compile ffmpeg,好吧,那就不在 windows裡做,
正好有一台 ubuntu 8.04 的電腦,就在這上面試好了。
打關鍵字「ubuntu ffmpeg libx264」
果然找到一篇好文章:
http://ubuntuforums.org/showthread.php?t=786095&highlight=libx264
依上面的步驟操作,果然就編譯出一個可以轉 mp4 的 ffmpeg。
(而且上面也有給 two pass 的範例了)
也試轉了幾個檔案,感覺還不錯。

後來,又打了關鍵字「 windows ffmpeg」
又找到了另一個 ffmpeg 的下載點:
http://sourceforge.net/project/showfiles.php?group_id=205275&package_id=248632
而且這次在我的電腦上轉 x264 是正常的......也就是說,
最後等於繞了一大圈又回到windows上來使用了。
不過,感覺還是有學到一點東西 ^^

轉檔指令....之後再補......
不過,把mp4改名成flv,這畢竟不是很好的方法吧(雖然目前可以正常播放)

小小的感想:
1.影音真是很複雜的東西。
2.ffmpeg真是個不錯的軟體。

20090308補充:
啊,還是覺得那一堆參數很不適合一般人使用,
原來有人已經有寫了很方便的介面了,
http://winff.org/ or http://code.google.com/p/winff/
還是這樣比較方便。

20090324補充:
用 ffmpeg 轉出單張照片截圖
ffmpeg -i input.flv -ss 00:00:30 -vframes 1 output.jpg
-ss 00:00:30 從30秒開始 (也可以 -ss 30)
-vframes 1 總共要轉 1 張 ^^

20100930補充:
想從影片檔轉出連續的截圖
ffmpeg.exe -i input.mpg -f image2 -vcodec mjpeg ouput%d.jpg
當然最後可以用 %2d , %3d ....看自己的需求。
一樣可以加入 -ss 或 -t 的參數
也可加入 -r 參數控制 fps