-map
參數告訴ffmpeg要從輸入源中選擇/拷貝
哪一個stream
流到輸出,能夠從輸入源中選擇多個音視頻流做爲輸出。-map
參數,ffmpeg默認從輸入源中的視頻流和音頻流各選擇一個流。-map
的參數順序。缺省狀況下(沒有使用-map
參數),好比:ide
ffmpeg -i 0001.ts -c copy -f mpegts udp://192.168.1.100&pkt_size=1316
FFmpeg會默認從全部輸入流中找到[最高質量的一個視頻輸入流]和[最高質量的一個音頻輸入流],並拷貝流輸出udp輸出流。其餘流實質上會被丟棄。編碼
若是使用map命令顯示與上面命令相同的操做,它的命令以下:命令行
ffmpeg -i 0001.ts \ -map single_highest_quality_video_stream_from_all_inputs \ -map single_highest_quality_audio_stream_from_all_inputs \ -c copy -f mpegts "udp://192.168.1.100:1234?pkt_size=1316"
此處輸出將有兩個流,一個音頻,一個視頻。3d
例子,0001.ts是個單視頻流,多音頻流的信息以下:code
Stream #0:0
是視頻流Stream #0:1
~ Stream #0:3
是音頻流Stream #0:4
是字幕流Input #0, mpegts, from '0001.ts': Duration: 00:04:46.23, start: 57251.747478, bitrate: 5861 kb/s Program 34 Metadata: service_name : Test TV HD service_provider: TV5 Stream #0:0[0x53d]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc Stream #0:1[0x53e](THA): Audio: aac_latm (HE-AACv2) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp Stream #0:2[0x53f](QAA): Audio: aac_latm (HE-AACv2) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp Stream #0:3[0x540](NAR): Audio: aac_latm (LC) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp Stream #0:4[0x541](tha): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
以下命令:視頻
-map 0:0 -map 0:2
input
選擇輸入源中Stream #0:0
的視頻流,Stream #0:2
的音頻流,拷貝選擇的音視頻流輸出到udp輸出流it
ffmpeg -i 0001.ts -map 0:0 -map 0:2 -c copy -f mpegts "udp://192.168.1.100:1234?pkt_size=1316"
以下命令:io
-map 0:0 -map 0:1 -map 0:2 -map 0:3
stream
選擇輸入源中Stream #0:0
的視頻流,Stream #0:0
、Stream #0:1
和Stream #0:3
的三路音頻流,拷貝選擇的音視頻流輸出到udp輸出流
ffmpeg -i 0001.ts -map 0:0 -map 0:1 -map 0:2 -map 0:3 \ -c copy -f mpegts "udp://192.168.1.100:1234?pkt_size=1316"
以下命令:
-map 0:a -map 0:v
選擇輸入源中全部視頻流和全部的音頻,拷貝全部的音視頻流輸出到udp流中
ffmpeg -i 0001.ts -map 0:a -map 0:v -c copy -f mpegts "udp://192.168.1.100:1234?pkt_size=1316"
以下命令:
-map 0
選擇輸入源中全部的流,拷貝全部的流輸出到udp流中
ffmpeg -i 0001.ts -map 0 -c copy -f mpegts "udp://192.168.1.100:1234?pkt_size=1316"
有時處理輸入源中的多視頻和多音頻流時,想針對不一樣音視頻流作不一樣的編碼處理
以下命令:
Stream #0:0
視頻流拷貝複製Stream #0:1
和Stream #0:2
音頻流拷貝複製Stream #0:2
音頻流編碼爲mp3格式(128kbps)Stream #0:4
字幕流拷貝複製fffmpeg -i 0001.ts -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \ - c:v copy \ - c:a:0 copy \ - c:a:1 copy \ - c:a:2 libmp3lame -b:a:2 128k \ - c:s copy \ -f mpegts "udp://192.168.1.100:1234?pkt_size=1316"