ffmpeg rtmp推流 視訊轉碼
阿新 • • 發佈:2021-12-20
ffmpeg -re -i 123.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://183.216.186.96:9935/live/555
首先安裝ffmpeg ,命令解釋
1. -re本地幀頻讀資料,主要用於模擬捕獲裝置
2. -i 輸入您要處理的視訊檔案路徑,123.mp4是當前路徑下
3. -vcodec libx264強制使用libx264編解碼方式。 如果用copy表示原始編解碼資料必須被拷貝
4. -acodec acc使用acc 編解碼
5. -strict -2 -strict -2 之前是實驗引數表示 aac音訊編碼 如果不使用aac音訊編碼使用使其的編碼好像還需要匯入第三方的音訊編碼庫 比較麻煩 使用FFmpeg自帶的aac音訊編碼要帶上-strict -2 引數就可以了。帶這個引數是為了使用aac音訊編碼。
6.-f flv 強制使用flv格式
7.rtmp://183.216.186.96:9935/live/555 nginx配置的推流地址,live是應用路由,9935時監聽埠,555是推流房間號,也就是推流id,會以這個id生成檔案,比如這裡會生成 555.flv檔案
rtmp { server { listen 1935; chunk_size 4000; application live { live on; } } }
如上配置的rtmp 推流路徑是 rtmp://ip:1935/live/roomId roomid是自定義的
ffmpeg 視訊格式轉換
# -f mp4 指定格式,-vcode指定視訊編碼器,-acode指定音訊編碼器,-y覆蓋輸出檔案 ,強制使用codec編解碼方式。 如果用copy表示原始編解碼資料必須被拷貝。 ffmpeg -i $path -f mp4 -vcodec copy -acodec copy -y $dirname/$basename.mp4 >>/opt/out.log 2>&1; #path - recorded file path (/tmp/rec/mystream-1389499351.flv) //記錄檔案路徑 #filename - path with directory omitted (mystream-1389499351.flv) #basename - file name with extension omitted (mystream-1389499351) #dirname - directory path (/tmp/rec)