<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 簡介 在編碼之前,ffmpeg可以使用libavfilter庫中的過濾器處理原始音頻和視頻幀。 幾個鏈式過濾器形成一個過濾器圖形。 ffmpeg區分兩種類型的過濾器圖形:簡單和復雜。 # 簡單濾鏡 簡單的過濾器圖是那些只有一個輸入和輸出,都是相同的類型。 在上面的圖中,它們可以通過在解碼和編碼之間插入一個額外的步驟來表示: ![](https://box.kancloud.cn/7b64810d6015ef42dea5ce1ff667f696_621x305.png) 簡單的filtergraphs配置了`per-stream-filter`選項(分別為視頻和音頻使用`-vf`和`-af`別名)。 一個簡單的視頻filtergraph可以看起來像這樣的例子: ![](https://box.kancloud.cn/b5bdcb23392527d883605367d760b0fb_761x133.png) 請注意,某些濾鏡會更改幀屬性,但不會改變幀內容。 例如。 上例中的fps過濾器會改變幀數,但不會觸及幀內容。 另一個例子是setpts過濾器,它只設置時間戳,否則不改變幀。 # 復雜濾鏡 復雜的過濾器圖是那些不能簡單描述為應用于一個流的線性處理鏈的過濾器圖。 例如,當圖形有多個輸入和/或輸出,或者當輸出流類型與輸入不同時,就是這種情況。 他們可以用下圖來表示: ![](https://box.kancloud.cn/773994de38179253f0652d0c94e9d2e2_542x492.png) 復雜的過濾器圖使用`-filter_complex`選項進行配置。 請注意,此選項是全局性的,因為復雜的過濾器圖形本質上不能與單個流或文件明確關聯。 -lavfi選項等同于`-filter_complex`。 一個復雜的過濾器圖的一個簡單的例子是覆蓋過濾器,它有兩個視頻輸入和一個視頻輸出,包含一個視頻疊加在另一個上面。 它的音頻對應是amix濾波器 # 命令 濾鏡命令 ~~~ ffmpeg -i input.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4 ~~~ * `-vf`: 視頻濾鏡,名字教crop參數是我本身視頻寬度-200,高度-200 * `-c:v` 視頻編碼器是libx264 * `-c:a` 音頻編碼器copy不做特殊處理 crop格式:`crop=out_w:out_h:x:y` # 視頻縮小一倍 ~~~ ffmpeg -i out.mp4 -vf scale=iw/2:-1 scale.mp4 ~~~ ? `-vf scale` 指定使用簡單過濾器 scale,iw/2:-1 中的 iw 指定按整型取視頻的寬度。 -1 表示高度隨寬度一起變化。 視頻裁剪 ~~~ ffmpeg -i VR.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy -video_size 1280x720 vr_new.mp4 ~~~ `crop 格式:crop=out_w:out_h:x:y` ? `out_w`: 輸出的寬度。可以使用 in_w 表式輸入視頻的寬度。 ? `out_h`: 輸出的高度。可以使用 in_h 表式輸入視頻的高度。 ? x : X坐標 ? y : Y坐標 如果 x和y 設置為 0,說明從左上角開始裁剪。如果不寫是從中心點裁剪。 # 倍速播放 ~~~ ffmpeg -i out.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" speed2.0.mp4 ~~~ ? `-filter_complex` 復雜濾鏡,`[0:v]`表示第一個(文件索引號是0)文件的視頻作為輸入。`setpts=0.5*PTS`表示每幀視頻的pts時間戳都乘0.5 ,也就是差少一半。`[v]`表示輸出的別名。音頻同理就不詳述了。 ? map 可用于處理復雜輸出,如可以將指定的多路流輸出到一個輸出文件,也可以指定輸出到多個文件。`"[v]"` 復雜濾鏡輸出的別名作為輸出文件的一路流。上面 map的用法是將復雜濾鏡輸出的視頻和音頻輸出到指定文件中。 # 對稱視頻 ~~~ ffmpeg -i out.mp4 -filter_complex "[0:v]pad=w=2*iw[a];[0:v]hflip[b];[a][b]overlay=x=w" duicheng.mp4 ~~~ ? hflip 水平翻轉 如果要修改為垂直翻轉可以用vflip。 # 畫中畫 ~~~ ffmpeg -i out.mp4 -i out1.mp4 -filter_complex "[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]" -map "[out]" -movflags faststart new.mp4 ~~~ # 錄制畫中畫 ~~~ ffmpeg -f avfoundation -i "1" -framerate 30 -f avfoundation -i "0:0" -r 30 -c:v libx264 -preset ultrafast -c:a libfdk_aac -profile:a aac_he_v2 -ar 44100 -ac 2 -filter_complex "[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[a];[0:v][a]overlay=x=W-w-10:y=0[out]" -map "[out]" -movflags faststart -map 1:a b.mp4 ~~~ # 多路視頻拼接 ~~~ ffmpeg -f avfoundation -i "1" -framerate 30 -f avfoundation -i "0:0" -r 30 -c:v libx264 -preset ultrafast -c:a libfdk_aac -profile:a aac_he_v2 -ar 44100 -ac 2 -filter_complex "[0:v]scale=320:240[a];[a]pad=640:240[b];[b][1:v]overlay=320:0[out]" -map "[out]" -movflags faststart -map 1:a c.mp4 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看