日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ffmpeg 时间戳

發(fā)布時(shí)間:2023/12/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffmpeg 时间戳 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)http://blog.csdn.net/yfh1985sdq/article/details/5721953

AVpacket里的時(shí)間戳pts和dts.單位好像是us.

問 : 時(shí)間戳pts和dts,這里兩個(gè)時(shí)間戳各有什么意義?

答 : 顯示時(shí)間,解碼時(shí)間. DTS:decoding time stamp PTS:presentation time stamp Generally the PTS and DTS will only differ when the stream we are playing has B frames in it.

問 : 在 VLC 中調(diào)用 avcodec_decode_video() 函數(shù)進(jìn)行解碼時(shí),AVFrame->pts 時(shí)間戳不對,導(dǎo)致我的圖像不能夠顯示? 請問有誰知道它的解碼原理,這個(gè) PTS 怎么得出的嗎?還是外部傳入的?

答 : AVFrame 上的時(shí)間戳是用戶事件戳 是用戶打上去的,就是你的程序。 PTS 是在包AVPacket上 顯示時(shí)間戳是在 影片被encode的時(shí)候打上的。。編碼器 會做這部分工作。 在play back 的時(shí)候會根據(jù)這個(gè)時(shí)間 調(diào)整播放進(jìn)度。 我貼下 VLC 的代碼,

(vlc-0.9.8a/modules/codec/avcodec/video.c 文件中)

i_used = avcodec_decode_video( p_sys->p_context, p_sys->p_ff_pic, &b_gotpicture, p_sys->i_buffer <= 0 && p_sys->b_flush ? NULL : (uint8_t*)p_sys->p_buffer, p_sys- >i_buffer );

中間省略 取得 PTS ,

if( p_sys->p_ff_pic->pts ) {

printf(" p_sys->p_ff_pic->pts = %Lx/n", p_sys->p_ff_pic->pts); p_sys->i_pts = p_sys->p_ff_pic->pts;

}

從 AVFrame 結(jié)構(gòu)中取得 這個(gè) PTS ,但是這個(gè) AVFrame 結(jié)構(gòu)中取得 這個(gè) PTS 從哪里取得的呢? 你的問題解決沒有,我現(xiàn)在也是這個(gè)問題,AVFrame->pts 時(shí)間戳不對,只有第一幀能顯示,其他的都不能顯示

轉(zhuǎn)載于:https://www.cnblogs.com/littlejohnny/p/3487215.html

總結(jié)

以上是生活随笔為你收集整理的ffmpeg 时间戳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。