簡體   English   中英

一起編碼視頻和音頻比分別編碼要慢得多

[英]Encoding Video and Audio together is much slower than encoding each separately

使用 Media Foundation 分別編碼音頻和視頻,然后使用 ffmpeg 進行多路復用,這比在 Media Foundation 中同時編碼音頻和視頻要快得多。 我很想知道為什么?

我正在編碼 aac 音頻和 h264 視頻; 輸入到編碼器的視頻以可變幀速率(非常低)。 如果視頻輸入處於恆定幀速率(與輸出相同),我得到的速度可能是我所期望的。

Notably, if I write all the audio(video) stream then the video(audio) stream, all the time encoding is taken writing the first stream, and the second stream is written near instantly.

有人可以告訴我發生了什么嗎?

  1. 首先,您必須使用 ffmpeg 進行所有工作,“Media Foundation”是一個微軟應用程序,大多數應用程序(實際上是 100%)使用 ffmpeg 進行編碼等。

  2. 您可以為音頻和視頻編寫代碼,(分開),然后將所有視頻和音頻組合在一起。

例如,我們有一個名為“pagameloquemedebes.avi”的獨特文件

ffmpeg -i "pagameloquemedebes.avi"

讓我們展示文件的 map 和所有流 stream 0:0 mpeg 視頻 stream 0:1 WMA 音頻

好的,讓 go 創建一個 h264 視頻和 acc 音頻,我們將創建一個文件夾“paso1”

對於視頻編碼-an audio none -sn subtitle none -dn data none etc...如果你想要相同的 fps,請使用 -r 24 (fps) ffmpeg -i pagameloquemedebes.avi -map 0:0 -c:v libx264 -預設非常快 -an -sn -dn -map_metadata -1 -map_chapters -1./paso1/video.mp4

現在音頻

ffmpeg -i pagameloquemedebes.avi -map 0:1 -c:a aac -vn -sn -dn -map_metadata -1 -map_chapters -1 ./paso1/audio.aac

現在在文件夾 paso1 中,我們運行

ffmpeg -i video.mp4 -c:a aac -i audio.aac -c copy -map 0:v -map 1:a:0   disposition:a:0 default  -strict -2 -sn -dn -map_metadata -1 -map_chapters -1  -movflags faststart end_newfile.mp4

享受你的工作,問候

為什么這個 API 越野車可能不是一個很好的問題。

我決定用CreateProcess調用 ffmpeg 來進行多路復用。

我可能需要學會期待這種事情,而不是擔心添加 ffmpeg 依賴項,尤其是在實現如此微不足道的情況下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM