2-pass ffmpeg ipod video encoding
Posted in BSD+Linux, Ubuntu | By tarotoast | Tags: code, encoding, ffmpeg, ipod, video
把檔案存成 ipodconv
input_file=$1
output_dir=/home/peter/.ipodvideos
ffmpeg -y -i "${input_file}" -an -v 1 -threads auto -vcodec libx264 \
-b 1000k -bt 175k -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 \
-parti4x4 1 -partp8x8 1 -me full -subq 1 -me_range 21 -chroma 1 \
-slice 2 -bf 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 \
-rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -qdiff 4 \
-i_qfactor 0.71428572 -maxrate 768k -bufsize 2M -cmp 1 -s 640x480 \
-f mp4 -pass 1 /dev/null
ffmpeg -y -i "${input_file}" -v 1 -threads auto -vcodec libx264 -b 1000k\
-bt 175k -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 \
-partp8x8 1 -me full -subq 6 -me_range 21 -chroma 1 -slice 2 -bf 0 \
-level 30 -g 300 -keyint_min 30 -sc_threshold 40 \
-rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -qdiff 4 \
-i_qfactor 0.71428572 -maxrate 768k -bufsize 2M -cmp 1 -s 640x480 \
-acodec libfaac -ab 192k -ar 48000 -ac 2 -f mp4 \
-pass 2 "${output_dir}/${input_file}.mov"
2 pass encoding 的用意是在於第一次是作 profiling,然後第二次就參照第一次得到的 profile 來分配哪些片段要比較高的 bitrate,這樣整體壓縮起來的效果會好很多。
不過話說回來以上的 h264 + aac 的壓縮實在非常 CPU intensive,速度大概是 mp4 的 4~5 倍.. 囧
Recent Comments