![連接原始影片中的文件](https://rvso.com/image/1645724/%E9%80%A3%E6%8E%A5%E5%8E%9F%E5%A7%8B%E5%BD%B1%E7%89%87%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6.png)
我使用 Adobe After Effects 為影片創建了一個基本的約 10 秒的結尾,並將其匯出為無損 AVI 格式 ( rawvideo
)。據我所知,在 After Effects 中無法為視頻提供空音頻流,並且 FFmpeg 的 concat 解復用器要求每個視頻流都有一個音頻流,因此我運行以下命令來添加一些靜音並重新編碼rawvideo
為h264
/ opus
:
ffmpeg -i "YouTube Outro.avi" -f lavfi -i aevalsrc=0 -map 0 -map 1 -shortest -c:v libx264 -c:a libopus "Outro.mkv"
當我嘗試將此文件連接到我的原始影片時,問題就出現了。我的文件中有以下內容:
file Original.mkv
file 'YouTube Outro.mkv'
有關這些輸入的資訊:
Input #0, matroska,webm, from 'Original.mkv':
Metadata:
ENCODER : Lavf58.65.100
Duration: 00:42:45.54, start: -0.007000, bitrate: 2521 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR
1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Metadata:
ENCODER : Lavc58.115.102 libx264
DURATION : 00:42:45.541000000
Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc58.115.102 libopus
DURATION : 00:42:45.368000000
Input #1, matroska,webm, from 'YouTube Outro.mkv':
Metadata:
DATE : 2021-03-10T23:13:19.647059
ENCODER : Lavf58.65.100
Duration: 00:00:08.97, start: -0.007000, bitrate: 74 kb/s
Stream #1:0: Video: h264 (High 4:4:4 Predictive), yuv444p(tv, progressive), 1920x1080, 29.97 fps, 29.
97 tbr, 1k tbn, 59.94 tbc (default)
Metadata:
ENCODER : Lavc58.115.102 libx264
DURATION : 00:00:08.949000000
Stream #1:1: Audio: opus, 48000 Hz, mono, fltp (default)
Metadata:
ENCODER : Lavc58.115.102 libopus
DURATION : 00:00:08.968000000
At least one output file must be specified
....並使用concat
解復用器將它們連接起來:
ffmpeg -f concat -safe 0 -i list.txt -c copy Final.mkv
生成的文件包含整個原始視頻,其時間戳反映了添加的10 秒,但是當達到該時間戳時,不會顯示任何內容- 事實上,視頻在原始視頻結束之前凍結了幾幀,並保持在該幀上一直幀到影片持續時間的結尾。
我在這裡做錯了什麼以至於很難連接這些h264
/opus
文件?