Re: [請益] convert to flv 的問題

看板PHP作者 (麥芽糖N  ﳿ︠)時間16年前 (2009/08/14 17:07), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《cloudlin322 (麥芽糖N  ﳿ︠)》之銘言: : 請教板上高手 : 我現在在練習利用ffmpeg將影片轉換成flv : 在轉換的時候沒有問題,但是要擷取圖片的時候卻怎樣都擷取不出來 : $cmd = "ffmpeg -i $in -pix_fmt rgb24 -vframes 1 -s 640x480 $out 2>&1"; : 這是我擷取的指令,不知道是否哪裡有問題?? : 另外想要請問一下 : 要怎樣得到影片播放的時間以及其他資訊?? : 在Google上找了很久,關於這方面的資訊很少,所以往這邊尋求協助 : 感謝~~ 求救~~~ 我現在在測試機上面轉flv已經OK了 後來放到另外一台主機,一樣的環境一樣的程式卻忽然轉不出來了!!! 本來以為是資料夾的權限或是ffmpeg沒安裝好 但是後來檢查資料夾權限有打開,直接在主機上面下指令有可以順利轉成功 請問各位還有想到有可能是什麼原因造成的嗎?? 因為都沒有錯誤訊息...蠻難debug的... 附上程式 function convert_flv( $in, $out ) { //unlink( $out ); $cmd = "ffmpeg -i $in -ab 56 -ar 22050 -b 500 -r 15 $out"; exec($cmd, $output, $retval); $handle = popen( $cmd, "r" ); while( fgets( $handle ) ) { } pclose( $handle ); } function get_thumbnail( $in, $out ) { $cmd = "ffmpeg -i $in -an -ss 00:00:03 -an -r 1 -s 640x480 -vframes 1 -y -pix_fmt rgb24 $out 2>&1 > /tmp/stdout.txt"; exec($cmd, $output, $retval); } function get_flv( $upload, $file_name, $flv_path, $jpg_path ) { $flv_name = $file_name.".flv"; $thumb_name = $file_name."%d.jpg"; //目錄不存在的話 if (!file_exists($flv_path)) mkdir($flv_path, 0777); //轉換檔案 $dst_file = $flv_path.$flv_name; convert_flv( $upload, $dst_file ); //如果轉換成功 if (file_exists($dst_file)) { //echo 'File exists, convert flv sucessfully<br>'; get_thumbnail( $flv_path.$flv_name, $jpg_path.$thumb_name ); //get_thumbnail_jpg( $upload, $dst_path.$thumb_name ); return $dst_file; if(file_exists($dst_path.$thumb_name)) { //echo 'Pic exists, convert flv sucessfully<br>'; return $dst_file; }else { echo 'Pic isn\'t exists, convert flv error<br>'; return false; } } else { echo 'File isn\'t exists, convert flv error<br>'; return false; } } $dst_file = 'test.wmv'; // 轉換 FLV 格式 $fileParts = explode( ".", $dst_file ); $fileExt = strtolower( $fileParts[count($fileParts) - 1] ); $fileName = date("U").'_'.$_SESSION['jsit_user_id']['key']; $flvFile = get_flv( $dst_file, $fileName, "./videos/2/", "./videos_gallery/2/" );//echo $flvFile."<br>"; if ( $flvFile ) { $fileName = "$fileName.flv"; } else return false; 麻煩各位了...感謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.120.30

08/14 17:37, , 1F
你把 ffmpeg 改成絕對路徑寫法試試看
08/14 17:37, 1F

08/14 17:58, , 2F
有 這個方法我也試過了~還是不行~
08/14 17:58, 2F

08/14 23:06, , 3F
直接在 shell 跑跑看. 會有比較多資訊
08/14 23:06, 3F
文章代碼(AID): #1AXIb2Aj (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1AXIb2Aj (PHP)