php获取flv视频时间长度代码
function bigendian2int( $byte_word , $signed = false) { $int_value = 0; $byte_wordlen = strlen ( $byte_word ); for ( $i = 0; $i < $byte_wordlen ; $i ++) { $int_value += ord( $byte_word { $i }) * pow(256, ( $byte_wordlen - 1 - $i )); } if ( $signed ) { $sign_mask_bit = 0x80 << (8 * ( $byte_wordlen - 1)); if ( $int_value & $sign_mask_bit ) { $int_value = 0 - ( $int_value & ( $sign_mask_bit - 1)); } } return $int_value ; } function gettime( $name ){ if (! file_exists ( $name )){ return ; } $flv_data_length = filesize ( $name ); $fp = @ fopen ( $name , 'rb' ); $flv_header = fread ( $fp , 5); fseek ( $fp , 5, seek_set); $frame_size_data_length =bigendian2int( fread ( $fp , 4)); $flv_header_frame_length = 9; if ( $frame_size_data_length > $flv_header_frame_length ) { //开源代码phpfensi测试数据 fseek ( $fp , $frame_size_data_length - $flv_header_frame_length , seek_cur); } $duration = 0; while (( ftell ( $fp ) + 1) < $flv_data_length ) { $this_tag_header = fread ( $fp , 16); $data_length = bigendian2int( substr ( $this_tag_header , 5, 3)); $timestamp = bigendian2int( substr ( $this_tag_header , 8, 3)); $next_offset = ftell ( $fp ) - 1 + $data_length ; if ( $timestamp > $duration ) { $duration = $timestamp ; } fseek ( $fp , $next_offset , seek_set); } fclose( $fp ); return $duration ; } function fn( $time ){ $num = $time ; $sec = intval ( $num / 1000); $h = intval ( $sec / 3600); $m = intval (( $sec % 3600) / 60); $s = intval (( $sec % 60 )); $tm = $h . ':' . $m . ':' . $s ; return $tm ; } echo gettime( "27729.flv" ); //显示数字时间如236722 echo fn(236722); //显示时间格式0:03:56查看更多关于php获取flv视频时间长度代码 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31122