A. 使用ffmpeg給視頻加動態水印,水印走完一遍就停了
#2秒後logo從左到右移動的倆種方式:
ffplay-iinput.mp4-vfmovie=logo.png[logo];[in][logo]overlay=x='if(gte(t,2),((t-2)*80)-w,NAN)':y=0
ffmpeg-iinputvideo.avi-vf"movie=logo.png[logo];[in][logo]overlay=x='if(gte(t,2),((t-2)*80)-w,NAN)'"outputvideo.flv
B. php 用extension_loaded載入ffmpeg 然後實例化裡面的ffmpeg_movie
你如果電腦上裝了不止一個PHP,在CLR下就跟CGI效果不一樣。你要確認CLR下使用的PHP和CGI里用的PHP是同一個。
C. ffmpeg 下載一些視頻會403 ,怎麼解決下載器下載 瀏覽器下載都沒問題 -i "http
方法一:FFmpeg concat 協議
對於 MPEG 格式的視頻,可以直接連接:
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c output.mpg
對於非 MPEG 格式容器,但是是 MPEG 編碼器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包裝進 TS 格式的容器再合並。在新浪視頻,有很多視頻使用 H.264 編碼器,可以採用這個方法
ffmpeg -i input1.flv -c -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2.flv -c -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i input3.flv -c -bsf:v h264_mp4toannexb -f mpegts input3.ts
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c -bsf:a aac_adtstoasc -movflags +faststart output.mp4
保存 QuickTime/MP4 格式容器的時候,建議加上 -movflags +faststart。這樣分享文件給別人的時候可以邊下邊看。
方法二:FFmpeg concat 分離器
這種方法成功率很高,也是最好的,但是需要 FFmpeg 1.1 以上版本。先創建一個文本文件filelist.txt:
file 'input1.mkv'
file 'input2.mkv'
file 'input3.mkv'
然後:
ffmpeg -f concat -i filelist.txt -c output.mkv
注意:使用 FFmpeg concat 分離器時,如果文件名有奇怪的字元,要在 filelist.txt 中轉義。
方法三:Mencoder 連接文件並重建索引
這種方法只對很少的視頻格式生效。幸運的是,新浪視頻使用的 FLV 格式是可以這樣連接的。對於沒有使用 MPEG 編碼器的視頻(如 FLV1 編碼器),可以嘗試這種方法,或許能夠成功。
mencoder -forceidx -of lavf -oac -ovc -o output.flv input1.flv input2.flv input3.flv
方法四:使用 FFmpeg concat 過濾器重新編碼(有損)
語法有點復雜,但是其實不難。這個方法可以合並不同編碼器的視頻片段,也可以作為其他方法失效的後備措施。
ffmpeg -i input1.mp4 -i input2.webm -i input3.avi -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' <編碼器選項> output.mkv
如你所見,上面的命令合並了三種不同格式的文件,FFmpeg concat 過濾器會重新編碼它們。注意這是有損壓縮。
[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] 分別表示第一個輸入文件的視頻、音頻、第二個輸入文件的視頻、音頻、第三個輸入文件的視頻、音頻。concat=n=3:v=1:a=1 表示有三個輸入文件,輸出一條視頻流和一條音頻流。[v] [a] 就是得到的視頻流和音頻流的名字,注意在 bash 等 shell 中需要用引號,防止通配符擴展。
提示
以上三種方法,在可能的情況下,最好使用第二種。第一種次之,第三種更次。第四種是後備方案,盡量避免。
規格不同的視頻合並後可能會有無法預測的結果。
有些媒體需要先分離視頻和音頻,合並完成後再封裝回去。
對於 Packed B-Frames 的視頻,如果封裝成 MKV 格式的時候提示 Can't write packet with unknown timestamp,嘗試在 FFmpeg 命令的 ffmpeg 後面加上 -fflags +genpts
D. ffmpeg 水印在不同的視頻顯示不一樣大
-vhook和-vfilters已經無效了,要使用-vf 使用這一段,不過加水印後,視頻清晰度降低了,hoho ffmpeg -y -i input.mp4 -acodec -b 300k -vf ;movie=logo.png [watermark]; [in][watermark] overlay=0:0 [out]; output.mp4
E. php頁面使用extension_loaded 載入 php.ini中的ffmpeg 提示失敗 php ffmpeg_movie 不能被實例化
請確認你的php是否 安裝了ffmpeg擴展,如果phpinfo()發現有如下項,說明配置成功!
F. ffmpeg 怎麼從音頻中截取某段 怎麼將音頻加入視頻不損失視頻清晰度
提取簡單,從music.m4a中提取3:30到5:30的2分鍾 到clip.m4a
ffmpeg -i music.m4a -ss 3:30 -to 5:30 -c clip.m4a
而加入到其他視頻,涉及太多種可能,比如音頻位置、時長是否和視頻相符,涉及同步等問題。
沒法一一涉及。只能按最簡單的,音頻和視頻從開始就同時播的情況
ffmpeg -i clip.m4a -i video.mp4 -map 0:0 -map 1:1 -c movie.mp4
G. ffmpeg關於清晰度的問題
一個視頻的清晰度以及你要求的流暢度主要是受碼率影響,而不是解析度,解析度就好像水龍頭的口徑,碼率就像是水流量,你只是把口徑減小,水流量還是那麼大,那肯定沒啥變化。
你要增加一個參數: -b:v 1500k,這個1500k就是碼率,根據你的實際需要調整,越小越不清晰,當然就越流暢,數據量小了嘛。
H. 用ffmpeg給視頻加水印問題
-vhook和-vfilters已經無效了,要使用-vf
推薦使用這一段,不過加水印後,視頻清晰度降低了,hoho
ffmpeg -y -i input.mp4 -acodec -b 300k -vf "movie=logo.png [watermark]; [in][watermark] overlay=0:0 [out]" output.mp4
I. 200分求:使用ffmpeg給視頻加水印
ffmpeg 加水印,不是所有的版本都支持的,要0.5以前的版本,還需要帶vhook里watermarter.dll 再用ffmpeg 命令行就可以了。當然整個過程很復雜
建議你用 影音轉霸2009 2.5 專業視頻加水印工具
J. ffmpeg-php輸出錯誤:ffmpeg-php安裝成功後,輸出錯誤ffmpeg_movie::__construct() []: ISO: File Type
參考答案:在自然界中能為我們人的聽覺所感受的音是非常多的,但並不是所有的音都可以作為音樂的材料。在音樂中所使用的音,是人們在藝術、生活實踐中按一定的音律的比特意挑選出來的,這些音被組成為一個固定的體系,用來表現音樂思想和塑造音樂形象。