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)