亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

FFMpeg 使用 python 子進程給出無效參數錯誤

FFMpeg 使用 python 子進程給出無效參數錯誤

慕村9548890 2022-07-05 17:08:29
我正在嘗試將文件或麥克風流轉換為 22050 采樣率并將速度更改為雙倍。我可以使用帶有以下代碼的終端來做到這一點;#ffmpeg -i test.mp3 -af asetrate=44100*0.5,aresample=44100,atempo=2 output.mp3但我不能用 python 子進程運行這個終端代碼。我嘗試了很多事情,但每次都失敗了。一般來說,我正在采用請求的輸出格式“asetrate”或“aresample”或“atempo”不適合輸出格式錯誤。無效的論點。我如何運行它并使用管道獲取流?song = subprocess.Popen(["ffmpeg.exe", "-i", sys.argv[1], "-f", "asetrate", "22050", "wav", "pipe:1"],                         stdout=subprocess.PIPE)
查看完整描述

2 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

你的兩個命令是不同的。嘗試:

song = subprocess.Popen(["ffmpeg", "-i", sys.argv[1], "-af", "asetrate=22050,aresample=44100,atempo=2", "-f", "wav", "pipe:1"],
  • -af用于音頻過濾器。

  • -f是手動設置復用器/輸出格式


查看完整回答
反對 回復 2022-07-05
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

ffmpeg將所提供的任何內容解釋-af為單個參數,然后它將在內部解析為單獨的參數,因此在傳遞之前將它們分開Popen不會達到同樣的效果。


使用終端的初始示例應使用Popenas創建


subprocess.Popen([

    'ffmpeg', '-i', 'test.mp3', '-af', 'asetrate=44100*0.5,aresample=44100,atempo=2',

    'output.mp3',

])

因此,對于您使用管道的實際示例,請嘗試以下操作:


song = subprocess.Popen(

    ["ffmpeg.exe", "-i", sys.argv[1], "-f", "asetrate=22050,wav", "pipe:1"],

    stdout=subprocess.PIPE

)

然后,您將需要調用song.communicate()以獲取由ffmpeg.exe.


查看完整回答
反對 回復 2022-07-05
  • 2 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號