[{"data":1,"prerenderedAt":1456},["ShallowReactive",2],{"doc-page:\u002Fdocs\u002Fffmpeg-guide":3},{"doc":4,"prev":1417,"next":1424,"resolvedType":8,"readingMinutes":122,"audience":1431,"checklist":1435,"related":1439},{"path":5,"title":6,"description":7,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13,"body":14},"\u002Fdocs\u002Fffmpeg-guide","FFmpeg 完整指南","FFmpeg 安装、常用命令、视频转码、音频处理、字幕合并与批量操作","article",null,"media-creation","媒体与创作","2026-02-27","i-carbon-media-library",{"type":15,"value":16,"toc":1386},"minimark",[17,21,32,35,39,42,85,88,149,152,169,172,176,299,302,388,391,516,519,522,544,547,550,554,592,595,599,632,636,676,679,764,768,865,868,967,970,973,1016,1019,1060,1063,1066,1069,1099,1103,1190,1193,1264,1267,1270,1273,1284,1289,1292,1303,1306,1309,1323,1326,1346,1349,1382],[18,19,6],"h1",{"id":20},"ffmpeg-完整指南",[22,23,24,31],"p",{},[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fffmpeg.org\u002F",[29],"nofollow","FFmpeg"," 是最强大的开源音视频处理工具，几乎所有媒体软件的底层都依赖它。",[22,33,34],{},"这页更适合作为“音视频处理任务手册”来用：先判断自己是在做转封装、转码、抽轨、压缩还是字幕处理，再选对应命令。FFmpeg 的难点通常不在命令多，而在于你是否清楚自己想保画质、保兼容性，还是优先缩体积。",[36,37,38],"h2",{"id":38},"先按任务选",[22,40,41],{},"最常见的需求可以先这样归类：",[43,44,45,57,63,79],"ul",{},[46,47,48,52,53],"li",{},[49,50,51],"strong",{},"只是换容器格式","：优先尝试 ",[54,55,56],"code",{},"-c copy",[46,58,59,62],{},[49,60,61],{},"要缩体积或改编码","：再做重新编码",[46,64,65,68,69,72,73,72,76],{},[49,66,67],{},"只提取音频 \u002F 字幕 \u002F 缩略图","：优先 ",[54,70,71],{},"-map","、",[54,74,75],{},"-vn",[54,77,78],{},"-an",[46,80,81,84],{},[49,82,83],{},"准备发网页或移动端","：优先考虑 H.264 + AAC + MP4 的兼容组合",[36,86,87],{"id":87},"安装",[89,90,95],"pre",{"className":91,"code":92,"language":93,"meta":94,"style":94},"language-powershell shiki shiki-themes github-light github-dark","# Scoop（推荐）\nscoop install ffmpeg\n\n# Winget\nwinget install Gyan.FFmpeg\n\n# yt-dlp 团队维护的静态构建版\n# https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002FFFmpeg-Builds\n","powershell","",[54,96,97,106,113,120,126,132,137,143],{"__ignoreMap":94},[98,99,102],"span",{"class":100,"line":101},"line",1,[98,103,105],{"class":104},"sJ8bj","# Scoop（推荐）\n",[98,107,109],{"class":100,"line":108},2,[98,110,112],{"class":111},"sVt8B","scoop install ffmpeg\n",[98,114,116],{"class":100,"line":115},3,[98,117,119],{"emptyLinePlaceholder":118},true,"\n",[98,121,123],{"class":100,"line":122},4,[98,124,125],{"class":104},"# Winget\n",[98,127,129],{"class":100,"line":128},5,[98,130,131],{"class":111},"winget install Gyan.FFmpeg\n",[98,133,135],{"class":100,"line":134},6,[98,136,119],{"emptyLinePlaceholder":118},[98,138,140],{"class":100,"line":139},7,[98,141,142],{"class":104},"# yt-dlp 团队维护的静态构建版\n",[98,144,146],{"class":100,"line":145},8,[98,147,148],{"class":104},"# https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002FFFmpeg-Builds\n",[22,150,151],{},"验证：",[89,153,157],{"className":154,"code":155,"language":156,"meta":94,"style":94},"language-bash shiki shiki-themes github-light github-dark","ffmpeg -version\n","bash",[54,158,159],{"__ignoreMap":94},[98,160,161,165],{"class":100,"line":101},[98,162,164],{"class":163},"sScJk","ffmpeg",[98,166,168],{"class":167},"sj4cs"," -version\n",[36,170,171],{"id":171},"基础操作",[173,174,175],"h3",{"id":175},"格式转换",[89,177,179],{"className":154,"code":178,"language":156,"meta":94,"style":94},"# 视频转码\nffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a aac output.mp4\n\n# 无损容器转换（不重新编码）\nffmpeg -i input.mkv -c copy output.mp4\n\n# 音频转换\nffmpeg -i input.flac -c:a libmp3lame -q:a 0 output.mp3\nffmpeg -i input.wav -c:a libopus -b:a 128k output.opus\n",[54,180,181,186,218,222,227,243,247,252,275],{"__ignoreMap":94},[98,182,183],{"class":100,"line":101},[98,184,185],{"class":104},"# 视频转码\n",[98,187,188,190,193,197,200,203,206,209,212,215],{"class":100,"line":108},[98,189,164],{"class":163},[98,191,192],{"class":167}," -i",[98,194,196],{"class":195},"sZZnC"," input.mkv",[98,198,199],{"class":167}," -c:v",[98,201,202],{"class":195}," libx264",[98,204,205],{"class":167}," -crf",[98,207,208],{"class":167}," 23",[98,210,211],{"class":167}," -c:a",[98,213,214],{"class":195}," aac",[98,216,217],{"class":195}," output.mp4\n",[98,219,220],{"class":100,"line":115},[98,221,119],{"emptyLinePlaceholder":118},[98,223,224],{"class":100,"line":122},[98,225,226],{"class":104},"# 无损容器转换（不重新编码）\n",[98,228,229,231,233,235,238,241],{"class":100,"line":128},[98,230,164],{"class":163},[98,232,192],{"class":167},[98,234,196],{"class":195},[98,236,237],{"class":167}," -c",[98,239,240],{"class":195}," copy",[98,242,217],{"class":195},[98,244,245],{"class":100,"line":134},[98,246,119],{"emptyLinePlaceholder":118},[98,248,249],{"class":100,"line":139},[98,250,251],{"class":104},"# 音频转换\n",[98,253,254,256,258,261,263,266,269,272],{"class":100,"line":145},[98,255,164],{"class":163},[98,257,192],{"class":167},[98,259,260],{"class":195}," input.flac",[98,262,211],{"class":167},[98,264,265],{"class":195}," libmp3lame",[98,267,268],{"class":167}," -q:a",[98,270,271],{"class":167}," 0",[98,273,274],{"class":195}," output.mp3\n",[98,276,278,280,282,285,287,290,293,296],{"class":100,"line":277},9,[98,279,164],{"class":163},[98,281,192],{"class":167},[98,283,284],{"class":195}," input.wav",[98,286,211],{"class":167},[98,288,289],{"class":195}," libopus",[98,291,292],{"class":167}," -b:a",[98,294,295],{"class":195}," 128k",[98,297,298],{"class":195}," output.opus\n",[173,300,301],{"id":301},"提取音视频",[89,303,305],{"className":154,"code":304,"language":156,"meta":94,"style":94},"# 提取音频\nffmpeg -i video.mp4 -vn -c:a copy output.m4a\n\n# 提取视频（去除音频）\nffmpeg -i video.mp4 -an -c:v copy output.mp4\n\n# 提取指定音轨\nffmpeg -i video.mkv -map 0:a:1 -c:a copy second_audio.m4a\n",[54,306,307,312,331,335,340,357,361,366],{"__ignoreMap":94},[98,308,309],{"class":100,"line":101},[98,310,311],{"class":104},"# 提取音频\n",[98,313,314,316,318,321,324,326,328],{"class":100,"line":108},[98,315,164],{"class":163},[98,317,192],{"class":167},[98,319,320],{"class":195}," video.mp4",[98,322,323],{"class":167}," -vn",[98,325,211],{"class":167},[98,327,240],{"class":195},[98,329,330],{"class":195}," output.m4a\n",[98,332,333],{"class":100,"line":115},[98,334,119],{"emptyLinePlaceholder":118},[98,336,337],{"class":100,"line":122},[98,338,339],{"class":104},"# 提取视频（去除音频）\n",[98,341,342,344,346,348,351,353,355],{"class":100,"line":128},[98,343,164],{"class":163},[98,345,192],{"class":167},[98,347,320],{"class":195},[98,349,350],{"class":167}," -an",[98,352,199],{"class":167},[98,354,240],{"class":195},[98,356,217],{"class":195},[98,358,359],{"class":100,"line":134},[98,360,119],{"emptyLinePlaceholder":118},[98,362,363],{"class":100,"line":139},[98,364,365],{"class":104},"# 提取指定音轨\n",[98,367,368,370,372,375,378,381,383,385],{"class":100,"line":145},[98,369,164],{"class":163},[98,371,192],{"class":167},[98,373,374],{"class":195}," video.mkv",[98,376,377],{"class":167}," -map",[98,379,380],{"class":195}," 0:a:1",[98,382,211],{"class":167},[98,384,240],{"class":195},[98,386,387],{"class":195}," second_audio.m4a\n",[173,389,390],{"id":390},"裁剪与拼接",[89,392,394],{"className":154,"code":393,"language":156,"meta":94,"style":94},"# 裁剪（从 1:00 到 2:30）\nffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c copy output.mp4\n\n# 精确裁剪（重新编码）\nffmpeg -ss 00:01:00 -i input.mp4 -to 00:01:30 -c:v libx264 -c:a aac output.mp4\n\n# 拼接（先创建文件列表）\n# filelist.txt 内容：\n# file 'part1.mp4'\n# file 'part2.mp4'\nffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4\n",[54,395,396,401,428,432,437,464,468,473,478,483,489],{"__ignoreMap":94},[98,397,398],{"class":100,"line":101},[98,399,400],{"class":104},"# 裁剪（从 1:00 到 2:30）\n",[98,402,403,405,407,410,413,416,419,422,424,426],{"class":100,"line":108},[98,404,164],{"class":163},[98,406,192],{"class":167},[98,408,409],{"class":195}," input.mp4",[98,411,412],{"class":167}," -ss",[98,414,415],{"class":195}," 00:01:00",[98,417,418],{"class":167}," -to",[98,420,421],{"class":195}," 00:02:30",[98,423,237],{"class":167},[98,425,240],{"class":195},[98,427,217],{"class":195},[98,429,430],{"class":100,"line":115},[98,431,119],{"emptyLinePlaceholder":118},[98,433,434],{"class":100,"line":122},[98,435,436],{"class":104},"# 精确裁剪（重新编码）\n",[98,438,439,441,443,445,447,449,451,454,456,458,460,462],{"class":100,"line":128},[98,440,164],{"class":163},[98,442,412],{"class":167},[98,444,415],{"class":195},[98,446,192],{"class":167},[98,448,409],{"class":195},[98,450,418],{"class":167},[98,452,453],{"class":195}," 00:01:30",[98,455,199],{"class":167},[98,457,202],{"class":195},[98,459,211],{"class":167},[98,461,214],{"class":195},[98,463,217],{"class":195},[98,465,466],{"class":100,"line":134},[98,467,119],{"emptyLinePlaceholder":118},[98,469,470],{"class":100,"line":139},[98,471,472],{"class":104},"# 拼接（先创建文件列表）\n",[98,474,475],{"class":100,"line":145},[98,476,477],{"class":104},"# filelist.txt 内容：\n",[98,479,480],{"class":100,"line":277},[98,481,482],{"class":104},"# file 'part1.mp4'\n",[98,484,486],{"class":100,"line":485},10,[98,487,488],{"class":104},"# file 'part2.mp4'\n",[98,490,492,494,497,500,503,505,507,510,512,514],{"class":100,"line":491},11,[98,493,164],{"class":163},[98,495,496],{"class":167}," -f",[98,498,499],{"class":195}," concat",[98,501,502],{"class":167}," -safe",[98,504,271],{"class":167},[98,506,192],{"class":167},[98,508,509],{"class":195}," filelist.txt",[98,511,237],{"class":167},[98,513,240],{"class":195},[98,515,217],{"class":195},[36,517,518],{"id":518},"推荐处理流程",[22,520,521],{},"一个稳妥的处理顺序通常是：",[523,524,525,532,538,541],"ol",{},[46,526,527,528,531],{},"先用 ",[54,529,530],{},"ffprobe"," 看清源文件编码、分辨率、音轨、字幕轨",[46,533,534,535,537],{},"判断能否直接 ",[54,536,56],{},"，避免无意义重编码",[46,539,540],{},"必须转码时，再选择目标编码器与参数",[46,542,543],{},"输出后抽查时长、音画同步、字幕、移动端兼容性",[22,545,546],{},"如果你不先看源文件信息，就很容易出现“其实只需要换封装，却误做整段转码”的浪费。",[36,548,549],{"id":549},"视频编码",[173,551,553],{"id":552},"h264兼容性最好","H.264（兼容性最好）",[89,555,557],{"className":154,"code":556,"language":156,"meta":94,"style":94},"ffmpeg -i input.mkv -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k output.mp4\n",[54,558,559],{"__ignoreMap":94},[98,560,561,563,565,567,569,571,573,575,578,581,583,585,587,590],{"class":100,"line":101},[98,562,164],{"class":163},[98,564,192],{"class":167},[98,566,196],{"class":195},[98,568,199],{"class":167},[98,570,202],{"class":195},[98,572,205],{"class":167},[98,574,208],{"class":167},[98,576,577],{"class":167}," -preset",[98,579,580],{"class":195}," medium",[98,582,211],{"class":167},[98,584,214],{"class":195},[98,586,292],{"class":167},[98,588,589],{"class":195}," 192k",[98,591,217],{"class":195},[22,593,594],{},"CRF 值：0（无损）→ 23（默认）→ 51（最差），推荐 18-28。",[173,596,598],{"id":597},"h265hevc体积更小","H.265\u002FHEVC（体积更小）",[89,600,602],{"className":154,"code":601,"language":156,"meta":94,"style":94},"ffmpeg -i input.mkv -c:v libx265 -crf 28 -preset medium -c:a aac output.mp4\n",[54,603,604],{"__ignoreMap":94},[98,605,606,608,610,612,614,617,619,622,624,626,628,630],{"class":100,"line":101},[98,607,164],{"class":163},[98,609,192],{"class":167},[98,611,196],{"class":195},[98,613,199],{"class":167},[98,615,616],{"class":195}," libx265",[98,618,205],{"class":167},[98,620,621],{"class":167}," 28",[98,623,577],{"class":167},[98,625,580],{"class":195},[98,627,211],{"class":167},[98,629,214],{"class":195},[98,631,217],{"class":195},[173,633,635],{"id":634},"av1最新一代","AV1（最新一代）",[89,637,639],{"className":154,"code":638,"language":156,"meta":94,"style":94},"# SVT-AV1（速度较快）\nffmpeg -i input.mkv -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus output.mkv\n",[54,640,641,646],{"__ignoreMap":94},[98,642,643],{"class":100,"line":101},[98,644,645],{"class":104},"# SVT-AV1（速度较快）\n",[98,647,648,650,652,654,656,659,661,664,666,669,671,673],{"class":100,"line":108},[98,649,164],{"class":163},[98,651,192],{"class":167},[98,653,196],{"class":195},[98,655,199],{"class":167},[98,657,658],{"class":195}," libsvtav1",[98,660,205],{"class":167},[98,662,663],{"class":167}," 30",[98,665,577],{"class":167},[98,667,668],{"class":167}," 6",[98,670,211],{"class":167},[98,672,289],{"class":195},[98,674,675],{"class":195}," output.mkv\n",[36,677,678],{"id":678},"字幕处理",[89,680,682],{"className":154,"code":681,"language":156,"meta":94,"style":94},"# 提取字幕\nffmpeg -i video.mkv -map 0:s:0 subtitle.srt\n\n# 硬烧字幕（嵌入画面）\nffmpeg -i video.mp4 -vf \"subtitles=sub.srt\" output.mp4\n\n# 软字幕（封装进容器）\nffmpeg -i video.mp4 -i sub.srt -c copy -c:s mov_text output.mp4\n",[54,683,684,689,705,709,714,730,734,739],{"__ignoreMap":94},[98,685,686],{"class":100,"line":101},[98,687,688],{"class":104},"# 提取字幕\n",[98,690,691,693,695,697,699,702],{"class":100,"line":108},[98,692,164],{"class":163},[98,694,192],{"class":167},[98,696,374],{"class":195},[98,698,377],{"class":167},[98,700,701],{"class":195}," 0:s:0",[98,703,704],{"class":195}," subtitle.srt\n",[98,706,707],{"class":100,"line":115},[98,708,119],{"emptyLinePlaceholder":118},[98,710,711],{"class":100,"line":122},[98,712,713],{"class":104},"# 硬烧字幕（嵌入画面）\n",[98,715,716,718,720,722,725,728],{"class":100,"line":128},[98,717,164],{"class":163},[98,719,192],{"class":167},[98,721,320],{"class":195},[98,723,724],{"class":167}," -vf",[98,726,727],{"class":195}," \"subtitles=sub.srt\"",[98,729,217],{"class":195},[98,731,732],{"class":100,"line":134},[98,733,119],{"emptyLinePlaceholder":118},[98,735,736],{"class":100,"line":139},[98,737,738],{"class":104},"# 软字幕（封装进容器）\n",[98,740,741,743,745,747,749,752,754,756,759,762],{"class":100,"line":145},[98,742,164],{"class":163},[98,744,192],{"class":167},[98,746,320],{"class":195},[98,748,192],{"class":167},[98,750,751],{"class":195}," sub.srt",[98,753,237],{"class":167},[98,755,240],{"class":195},[98,757,758],{"class":167}," -c:s",[98,760,761],{"class":195}," mov_text",[98,763,217],{"class":195},[36,765,767],{"id":766},"图片与-gif","图片与 GIF",[89,769,771],{"className":154,"code":770,"language":156,"meta":94,"style":94},"# 视频截图\nffmpeg -i video.mp4 -ss 00:00:30 -frames:v 1 screenshot.png\n\n# 视频转 GIF\nffmpeg -i video.mp4 -vf \"fps=15,scale=480:-1\" -loop 0 output.gif\n\n# 图片序列转视频\nffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4\n",[54,772,773,778,800,804,809,830,834,839],{"__ignoreMap":94},[98,774,775],{"class":100,"line":101},[98,776,777],{"class":104},"# 视频截图\n",[98,779,780,782,784,786,788,791,794,797],{"class":100,"line":108},[98,781,164],{"class":163},[98,783,192],{"class":167},[98,785,320],{"class":195},[98,787,412],{"class":167},[98,789,790],{"class":195}," 00:00:30",[98,792,793],{"class":167}," -frames:v",[98,795,796],{"class":167}," 1",[98,798,799],{"class":195}," screenshot.png\n",[98,801,802],{"class":100,"line":115},[98,803,119],{"emptyLinePlaceholder":118},[98,805,806],{"class":100,"line":122},[98,807,808],{"class":104},"# 视频转 GIF\n",[98,810,811,813,815,817,819,822,825,827],{"class":100,"line":128},[98,812,164],{"class":163},[98,814,192],{"class":167},[98,816,320],{"class":195},[98,818,724],{"class":167},[98,820,821],{"class":195}," \"fps=15,scale=480:-1\"",[98,823,824],{"class":167}," -loop",[98,826,271],{"class":167},[98,828,829],{"class":195}," output.gif\n",[98,831,832],{"class":100,"line":134},[98,833,119],{"emptyLinePlaceholder":118},[98,835,836],{"class":100,"line":139},[98,837,838],{"class":104},"# 图片序列转视频\n",[98,840,841,843,846,848,850,853,855,857,860,863],{"class":100,"line":145},[98,842,164],{"class":163},[98,844,845],{"class":167}," -framerate",[98,847,663],{"class":167},[98,849,192],{"class":167},[98,851,852],{"class":195}," frame_%04d.png",[98,854,199],{"class":167},[98,856,202],{"class":195},[98,858,859],{"class":167}," -pix_fmt",[98,861,862],{"class":195}," yuv420p",[98,864,217],{"class":195},[36,866,867],{"id":867},"音频处理",[89,869,871],{"className":154,"code":870,"language":156,"meta":94,"style":94},"# 调整音量\nffmpeg -i input.mp3 -af \"volume=1.5\" output.mp3\n\n# 音频标准化\nffmpeg -i input.mp3 -af loudnorm output.mp3\n\n# 淡入淡出\nffmpeg -i input.mp3 -af \"afade=t=in:d=3,afade=t=out:st=57:d=3\" output.mp3\n\n# 合并多个音频\nffmpeg -i \"concat:01.mp3|02.mp3|03.mp3\" -c copy output.mp3\n",[54,872,873,878,895,899,904,919,923,928,943,947,952],{"__ignoreMap":94},[98,874,875],{"class":100,"line":101},[98,876,877],{"class":104},"# 调整音量\n",[98,879,880,882,884,887,890,893],{"class":100,"line":108},[98,881,164],{"class":163},[98,883,192],{"class":167},[98,885,886],{"class":195}," input.mp3",[98,888,889],{"class":167}," -af",[98,891,892],{"class":195}," \"volume=1.5\"",[98,894,274],{"class":195},[98,896,897],{"class":100,"line":115},[98,898,119],{"emptyLinePlaceholder":118},[98,900,901],{"class":100,"line":122},[98,902,903],{"class":104},"# 音频标准化\n",[98,905,906,908,910,912,914,917],{"class":100,"line":128},[98,907,164],{"class":163},[98,909,192],{"class":167},[98,911,886],{"class":195},[98,913,889],{"class":167},[98,915,916],{"class":195}," loudnorm",[98,918,274],{"class":195},[98,920,921],{"class":100,"line":134},[98,922,119],{"emptyLinePlaceholder":118},[98,924,925],{"class":100,"line":139},[98,926,927],{"class":104},"# 淡入淡出\n",[98,929,930,932,934,936,938,941],{"class":100,"line":145},[98,931,164],{"class":163},[98,933,192],{"class":167},[98,935,886],{"class":195},[98,937,889],{"class":167},[98,939,940],{"class":195}," \"afade=t=in:d=3,afade=t=out:st=57:d=3\"",[98,942,274],{"class":195},[98,944,945],{"class":100,"line":277},[98,946,119],{"emptyLinePlaceholder":118},[98,948,949],{"class":100,"line":485},[98,950,951],{"class":104},"# 合并多个音频\n",[98,953,954,956,958,961,963,965],{"class":100,"line":491},[98,955,164],{"class":163},[98,957,192],{"class":167},[98,959,960],{"class":195}," \"concat:01.mp3|02.mp3|03.mp3\"",[98,962,237],{"class":167},[98,964,240],{"class":195},[98,966,274],{"class":195},[36,968,969],{"id":969},"质量与体积怎么取舍",[22,971,972],{},"一个简单的经验判断：",[43,974,975,984,996,1007],{},[46,976,977,980,981],{},[49,978,979],{},"追求兼容","：",[54,982,983],{},"libx264 + aac + mp4",[46,985,986,980,989,992,993],{},[49,987,988],{},"追求更小体积",[54,990,991],{},"libx265"," 或 ",[54,994,995],{},"libsvtav1",[46,997,998,68,1001,72,1004],{},[49,999,1000],{},"音频为主",[54,1002,1003],{},"opus",[54,1005,1006],{},"aac",[46,1008,1009,1012,1013],{},[49,1010,1011],{},"网页播放","：输出 MP4 时可加 ",[54,1014,1015],{},"-movflags +faststart",[22,1017,1018],{},"例如网页视频常见写法：",[89,1020,1022],{"className":154,"code":1021,"language":156,"meta":94,"style":94},"ffmpeg -i input.mkv -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k -movflags +faststart output.mp4\n",[54,1023,1024],{"__ignoreMap":94},[98,1025,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1055,1058],{"class":100,"line":101},[98,1027,164],{"class":163},[98,1029,192],{"class":167},[98,1031,196],{"class":195},[98,1033,199],{"class":167},[98,1035,202],{"class":195},[98,1037,205],{"class":167},[98,1039,208],{"class":167},[98,1041,577],{"class":167},[98,1043,580],{"class":195},[98,1045,211],{"class":167},[98,1047,214],{"class":195},[98,1049,292],{"class":167},[98,1051,589],{"class":195},[98,1053,1054],{"class":167}," -movflags",[98,1056,1057],{"class":195}," +faststart",[98,1059,217],{"class":195},[22,1061,1062],{},"不要一味追求最低 CRF。体积、编码时间、播放设备兼容性往往要一起平衡。",[36,1064,1065],{"id":1065},"实用技巧",[173,1067,1068],{"id":1068},"查看文件信息",[89,1070,1072],{"className":154,"code":1071,"language":156,"meta":94,"style":94},"ffprobe -v quiet -print_format json -show_format -show_streams input.mp4\n",[54,1073,1074],{"__ignoreMap":94},[98,1075,1076,1078,1081,1084,1087,1090,1093,1096],{"class":100,"line":101},[98,1077,530],{"class":163},[98,1079,1080],{"class":167}," -v",[98,1082,1083],{"class":195}," quiet",[98,1085,1086],{"class":167}," -print_format",[98,1088,1089],{"class":195}," json",[98,1091,1092],{"class":167}," -show_format",[98,1094,1095],{"class":167}," -show_streams",[98,1097,1098],{"class":195}," input.mp4\n",[173,1100,1102],{"id":1101},"批量转换powershell","批量转换（PowerShell）",[89,1104,1106],{"className":91,"code":1105,"language":93,"meta":94,"style":94},"Get-ChildItem *.mkv | ForEach-Object {\n    ffmpeg -i $_.FullName -c:v libx264 -crf 23 -c:a aac \"$($_.BaseName).mp4\"\n}\n",[54,1107,1108,1129,1185],{"__ignoreMap":94},[98,1109,1110,1113,1117,1120,1123,1126],{"class":100,"line":101},[98,1111,1112],{"class":167},"Get-ChildItem",[98,1114,1116],{"class":1115},"szBVR"," *",[98,1118,1119],{"class":111},".mkv ",[98,1121,1122],{"class":1115},"|",[98,1124,1125],{"class":167}," ForEach-Object",[98,1127,1128],{"class":111}," {\n",[98,1130,1131,1134,1137,1140,1143,1146,1148,1151,1153,1156,1159,1162,1165,1168,1171,1174,1176,1179,1182],{"class":100,"line":108},[98,1132,1133],{"class":111},"    ffmpeg ",[98,1135,1136],{"class":1115},"-",[98,1138,1139],{"class":111},"i ",[98,1141,1142],{"class":167},"$_",[98,1144,1145],{"class":111},".FullName ",[98,1147,1136],{"class":1115},[98,1149,1150],{"class":111},"c:v libx264 ",[98,1152,1136],{"class":1115},[98,1154,1155],{"class":111},"crf ",[98,1157,1158],{"class":167},"23",[98,1160,1161],{"class":1115}," -",[98,1163,1164],{"class":111},"c:a aac ",[98,1166,1167],{"class":195},"\"",[98,1169,1170],{"class":1115},"$",[98,1172,1173],{"class":195},"(",[98,1175,1142],{"class":167},[98,1177,1178],{"class":111},".BaseName",[98,1180,1181],{"class":195},")",[98,1183,1184],{"class":195},".mp4\"\n",[98,1186,1187],{"class":100,"line":115},[98,1188,1189],{"class":111},"}\n",[173,1191,1192],{"id":1192},"硬件加速",[89,1194,1196],{"className":154,"code":1195,"language":156,"meta":94,"style":94},"# NVIDIA GPU 加速编码\nffmpeg -i input.mkv -c:v h264_nvenc -preset p4 -crf 23 -c:a aac output.mp4\n\n# Intel QSV\nffmpeg -i input.mkv -c:v h264_qsv -global_quality 23 -c:a aac output.mp4\n",[54,1197,1198,1203,1231,1235,1240],{"__ignoreMap":94},[98,1199,1200],{"class":100,"line":101},[98,1201,1202],{"class":104},"# NVIDIA GPU 加速编码\n",[98,1204,1205,1207,1209,1211,1213,1216,1218,1221,1223,1225,1227,1229],{"class":100,"line":108},[98,1206,164],{"class":163},[98,1208,192],{"class":167},[98,1210,196],{"class":195},[98,1212,199],{"class":167},[98,1214,1215],{"class":195}," h264_nvenc",[98,1217,577],{"class":167},[98,1219,1220],{"class":195}," p4",[98,1222,205],{"class":167},[98,1224,208],{"class":167},[98,1226,211],{"class":167},[98,1228,214],{"class":195},[98,1230,217],{"class":195},[98,1232,1233],{"class":100,"line":115},[98,1234,119],{"emptyLinePlaceholder":118},[98,1236,1237],{"class":100,"line":122},[98,1238,1239],{"class":104},"# Intel QSV\n",[98,1241,1242,1244,1246,1248,1250,1253,1256,1258,1260,1262],{"class":100,"line":128},[98,1243,164],{"class":163},[98,1245,192],{"class":167},[98,1247,196],{"class":195},[98,1249,199],{"class":167},[98,1251,1252],{"class":195}," h264_qsv",[98,1254,1255],{"class":167}," -global_quality",[98,1257,208],{"class":167},[98,1259,211],{"class":167},[98,1261,214],{"class":195},[98,1263,217],{"class":195},[36,1265,1266],{"id":1266},"常见问题",[173,1268,1269],{"id":1269},"转完之后文件更大了",[22,1271,1272],{},"这通常说明：",[43,1274,1275,1278,1281],{},[46,1276,1277],{},"原文件本身已经压得很紧",[46,1279,1280],{},"你用的目标参数比原片更高码率",[46,1282,1283],{},"进行了不必要的重编码",[22,1285,527,1286,1288],{},[54,1287,530],{}," 看清原始编码参数，再决定是否真的需要转。",[173,1290,1291],{"id":1291},"字幕报错或乱码",[43,1293,1294,1297,1300],{},[46,1295,1296],{},"确认字幕文件编码是否为 UTF-8",[46,1298,1299],{},"Windows 路径里有空格时，滤镜参数要注意引号",[46,1301,1302],{},"硬烧字幕走滤镜，软字幕走封装，二者不要混淆",[173,1304,1305],{"id":1305},"音画不同步",[22,1307,1308],{},"优先确认源文件本身是否异常，再检查：",[43,1310,1311,1317,1320],{},[46,1312,1313,1316],{},[54,1314,1315],{},"-ss"," 放在输入前还是输入后",[46,1318,1319],{},"拼接文件是否编码参数一致",[46,1321,1322],{},"是否混用了 VFR \u002F CFR 素材",[36,1324,1325],{"id":1325},"延伸阅读",[43,1327,1328,1334,1340],{},[46,1329,1330],{},[25,1331,1333],{"href":1332},"\u002Fdocs\u002Fimage-tools","图片与截图工具",[46,1335,1336],{},[25,1337,1339],{"href":1338},"\u002Fdocs\u002Flive-recording","直播与录制工具",[46,1341,1342],{},[25,1343,1345],{"href":1344},"\u002Fdocs\u002Fmusic-tools","音乐处理与播放器工具",[36,1347,1348],{"id":1348},"参考链接",[43,1350,1351,1358,1366,1374],{},[46,1352,1353,1357],{},[25,1354,1356],{"href":27,"rel":1355},[29],"FFmpeg 官网"," — 文档与下载",[46,1359,1360,1365],{},[25,1361,1364],{"href":1362,"rel":1363},"https:\u002F\u002Ftrac.ffmpeg.org\u002Fwiki",[29],"FFmpeg Wiki"," — 详细指南",[46,1367,1368,1373],{},[25,1369,1372],{"href":1370,"rel":1371},"https:\u002F\u002Fgithub.com\u002FFFmpeg\u002FFFmpeg",[29],"FFmpeg GitHub"," — 源码",[46,1375,1376,1381],{},[25,1377,1380],{"href":1378,"rel":1379},"https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002FFFmpeg-Builds",[29],"yt-dlp FFmpeg Builds"," — 静态构建版",[1383,1384,1385],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":94,"searchDepth":108,"depth":108,"links":1387},[1388,1389,1390,1395,1396,1401,1402,1403,1404,1405,1410,1415,1416],{"id":38,"depth":108,"text":38},{"id":87,"depth":108,"text":87},{"id":171,"depth":108,"text":171,"children":1391},[1392,1393,1394],{"id":175,"depth":115,"text":175},{"id":301,"depth":115,"text":301},{"id":390,"depth":115,"text":390},{"id":518,"depth":108,"text":518},{"id":549,"depth":108,"text":549,"children":1397},[1398,1399,1400],{"id":552,"depth":115,"text":553},{"id":597,"depth":115,"text":598},{"id":634,"depth":115,"text":635},{"id":678,"depth":108,"text":678},{"id":766,"depth":108,"text":767},{"id":867,"depth":108,"text":867},{"id":969,"depth":108,"text":969},{"id":1065,"depth":108,"text":1065,"children":1406},[1407,1408,1409],{"id":1068,"depth":115,"text":1068},{"id":1101,"depth":115,"text":1102},{"id":1192,"depth":115,"text":1192},{"id":1266,"depth":108,"text":1266,"children":1411},[1412,1413,1414],{"id":1269,"depth":115,"text":1269},{"id":1291,"depth":115,"text":1291},{"id":1305,"depth":115,"text":1305},{"id":1325,"depth":108,"text":1325},{"id":1348,"depth":108,"text":1348},{"path":1418,"title":1419,"description":1420,"docType":8,"resourceKind":9,"categoryId":1421,"categoryLabel":1422,"updatedAt":12,"publishedAt":12,"icon":1423},"\u002Fdocs\u002Fdocker-compose-recipes","Docker Compose 常用配置","Nginx、MySQL、PostgreSQL、Redis、MinIO 等常用服务的 Docker Compose 配置模板","infra-deployment","服务器与部署","i-carbon-cloud",{"path":1425,"title":1426,"description":1427,"docType":8,"resourceKind":9,"categoryId":1428,"categoryLabel":1429,"updatedAt":12,"publishedAt":12,"icon":1430},"\u002Fdocs\u002Fgit-advanced","Git 进阶技巧","Git Worktree、子模块、Cherry-pick、Bisect、Reflog 等高级用法","dev-environment","开发环境","i-carbon-code",[1432,1433,1434],"希望把零散经验整理成长期可复用工作流的人","需要处理图像、视频、音频或创作流水线的人","希望阅读时顺手建立自己的操作清单或收藏体系的人",[1436,1437,1438],"先浏览标题、摘要和目录，带着问题阅读会更高效","确认素材路径、导出格式和磁盘空间是否满足当前任务","如果页面里提到相关文档，尽量一起打开对照，效果通常更完整",[1440,1444,1447,1451],{"path":1441,"title":1442,"description":1443,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"\u002Fdocs\u002Fimage-video-processing","图片与视频处理","ImageMagick、Sharp、视频转码、图片压缩与格式转换",{"path":1338,"title":1445,"description":1446,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"直播录制工具","抖音、TikTok、YouTube、Nico、B站等平台直播录制工具汇总",{"path":1448,"title":1449,"description":1450,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"\u002Fdocs\u002Fyt-dlp-guide","yt-dlp 视频下载指南","yt-dlp 安装配置、常用命令、格式选择、字幕下载与批量操作",{"path":1452,"title":1453,"description":1454,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":1455,"publishedAt":1455,"icon":13},"\u002Fdocs\u002Fvideo-download","视频下载与处理","YouTube、抖音、TikTok、Nico 等平台视频下载工具及 FFmpeg 编码指南","2026-02-07",1776215712953]