2012-02-17

【系統】FFmpeg : Convert H.264 to TS


又因為工作上的需要,要將 H.264的影片轉成 TS ( Transport Stream )
真是麻煩,這應該是對方要支援 H.264 吧,怎麼會要我們轉哩!!
唉~~沒辦法,工作,還是得做。

因為原本就己經有H.264的影片了,所以就打算直接用COPY的方式,包成TS 格式。
指令如下,聲音跟影像都用 COPY:
# ffmpeg -i mp4-orig.mp4 -vcodec copy -acodec copy ts-out.ts

但會出現錯誤訊息
[mpegts @ 0x61c040] h264 bitstream malformated, no startcode found, use -vbsf h264_mp4toannexb av_interleaved_write_frame(): Operation not permitted

照錯誤訊息所說的,再加上  -vbsf h264_mp4toannexb
所以指令就變成:
# ffmpeg -i mp4-orig.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb ts-out.ts

這次就沒錯啦,而且一下子指令就執行完了,因為只是重新封裝成TS的格式。

在這裡記錄一下。




Update 2012-02-17 :

轉完TS後,要讓 Server (Nginx) 認識這個格式。
到 /home/nginx/conf/mime.types
加上
video/MP2T                            ts;

然後在 /home/nginx/conf/nginx.conf
加上
location ~ \.ts$ {
            more_set_headers 'Content-Type: video/MP2T';
}

搞定。




0 comments:

張貼留言