又因為工作上的需要,要將 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';
}
more_set_headers 'Content-Type: video/MP2T';
}
搞定。
0 comments:
張貼留言