在 Linux 中混合影片文件中的音軌
我有一個包含兩個音軌的影片文件。第一個是背景音樂,另一個是評論。我想將這些曲目合併在一起。
這是我從 ffmpeg 得到的媒體資訊:
Input #0, avi, from '24.avi': Metadata: encoder : BandiAviMuxer 1.0 Duration: 00:17:49.13, start: 0.000000, bitrate: 10514 kb/s Stream #0:0: Video: mpeg1video (MPEG / 0x4745504D), yuv420p, 1280x1024 [SAR 1:1 DAR 5:4], 104857 kb/s, 30 tbr, 30 tbn, 30 tbc Stream #0:1: Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16p, 192 kb/s Stream #0:2: Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16p, 192 kb/s
我正在尋找一個 GUI 工具,因為我需要能夠以互動方式微調音軌的相對音量。我可能需要在整個影片中應用不同的音量比率。所以我需要一些將音量編輯為曲線的能力,其中包含關鍵點和它們之間的一些簡單插值。
我最近沒有進行任何影片編輯,所以我沒有最喜歡的應用程序。有很多影片編輯器。我不想依次嘗試每個應用程序,看看它是否支持我的工作流程。
使用僅限 Linux 的軟體對我來說很好。
我嘗試在 Blender 和 PiTiVi 中完成這項任務。
攪拌機
得分:3/5
我在 Blender 中的影片序列編輯器上使用這個寫得很好的教程作為參考。實際上,我之前在 Blender 中玩過 3D 建模。我從來沒有意識到它可以用作影片編輯器。我知道一些 Blender 鍵盤快捷鍵,這很有幫助。
安裝
從項目網頁獲取 Linux 二進制發行版,將存檔解壓縮到例如 ~/bin 並執行名為
blender
.影片編輯
Blender 無法導入具有多個音軌的影片文件。它只導入第一首曲目。因此,ffmpeg中的一個快速解決方案是將音軌複製出來並單獨導入
ffmpeg -i 24.avi -map 0:1 -c:a copy ~/fst.mp2 ffmpeg -i 24.avi -map 0:2 -c:a copy ~/snd.mp2
現在我可以使用第一篇連結文章中描述的過程添加這些音頻文件。
文章中還介紹了設置音量,以及添加關鍵幀。沒有描述的是如何編輯曲線。所以答案是使用與剪輯相同的選擇方法。用RMB選擇,用G鍵移動等等。有一個關於所謂的圖形編輯器的 Blender 手冊頁
渲染
在渲染選項中,在影片大小下,我不得不將大小滑塊更改為 100 %,並且我還關閉了抗鋸齒,因為我認為這裡沒有用。
有一個奇怪的錯誤:在渲染之前,我必須將游標移動到第一幀(第 1 幀)並點擊 Refresh Sequencer。否則渲染的影片文件完全是黑色的。
我在渲染時瘋狂地點擊時間線,設法讓 Blender 崩潰一次。
速度
預設 H264 + MP3 設置約 5 fps。考慮到我的影片是 30 fps,它真的很慢。編碼未使用所有可用的 CPU 核心(我已將此設置保留為自動)生成的影片在視覺上令人愉悅;-)
PiTiVi
得分 0/5
大約兩年前,我對 PiTiVi 有過不愉快的經歷。所以我很高興看看發生了什麼變化。
安裝
我使用 Fedora 19,所以
yum install pitivi
在 root 使用者下執行就可以了。接下來,我查看了 gstreamer 外掛列表並考慮安裝所有我能得到的東西
yum install gstreamer-plugins-ugly \ gstreamer-plugins-good-extras \ gstreamer-plugins-good \ gstreamer-plugins-bad-nonfree \ gstreamer-plugins-bad-free-extras \ gstreamer-plugins-bad-free \ gstreamer-ffmpeg
其中一些軟體包位於 RPM Fusion 儲存庫中。安裝大小非常大,142 MB,所以我決定不安裝它們。這不起作用(PiTiVi 在我的文件中為音頻和影片吐出了一個缺少外掛錯誤),所以我畢竟安裝了所有外掛,只是為了確定。我不得不重新啟動 PiTiVi,這樣它才會注意到新外掛。
影片編輯
PiTiVi 與 Blender 的影片剪輯中的多個音軌存在相同的問題。它只導入第一個。解決方案與 Blender 的情況相同。
ffmpeg -i 42.avi -map 0:2 -c:a copy ~/42snd.mp2
使用者界面非常簡單,因此添加剪輯並將其放置在時間線上無需解釋。音量曲線從時間線上可見。關鍵幀通過點兩下RMB添加,可以用LMB移動。簡單的。我還沒有弄清楚如何在貝塞爾曲線上對它們進行插值,但線性插值聽起來不錯,所以我沒有進一步調查。
渲染
首先,渲染對話框總是凍結在“還剩 1 秒”,有時是“還剩 2 秒”。它從未真正完成。儘管如此,輸出文件還是被創建了。
將輸出格式設置為mp4,影片編解碼器設置為x264enc,音頻設置為aac,保持預設設置,結果是影片文件損壞,無法在VLC中播放,在mplayer中播放時沒有聲音,圖像是彩色馬賽克隨機鮮豔的方塊。
選擇帶有 VP8 和 Vorbis 的 WebM,再次保持預設設置,結果還可以,但大約有五次整個圖像像素化,就像在觀看低質量的 DVB-T 廣播一樣。30 分鐘的影片文件超過了千兆,所以我認為這不是由於低質量的預設。
速度
使用 VP8 影片和 Vorbis 音頻將我 30 分鐘長的影片渲染成 WP8 文件大約需要 2 個半小時。同樣,預設情況下它沒有使用我的多核 CPU。此設置隱藏在各個編解碼器的詳細選項中。
結論
從可用性和 GUI 來看,PiTiVi 勝出。它更容易使用,並且它在時間線上對音軌有更好的波形視覺化;-) 預設情況下,音量曲線是可見的,並且非常容易編輯。此外,在開箱即用的 PiTiVi 中播放最終影片的預覽對我來說效果更好。在 Blender 中,影片往往落後於聲音。連結的教程建議更改記憶體大小。我沒有嘗試過,因為聽到聲音對我來說已經足夠了。
在 PiTiVi 中不起作用的是渲染。儘管能夠輕鬆地進行編輯很不錯,但如果我之後無法渲染它,那也是毫無用處的。
所以兩者之間沒有明顯的勝者。