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 編解碼
-f flv 強制使用flv格式
5. -strict -2 -strict -2 之前是實驗參數表示 aac音頻編碼 如果不使用aac音頻編碼使用使其的編碼好像還需要導入第三方的音頻編碼庫 比較麻煩 使用FFmpeg自帶的aac音頻編碼要帶上-strict -2 參數就可以了。帶這個參數是為了使用aac音頻編碼。
6.
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)