Fab*_*ias 43 ffmpeg command-line
我可以使用以下命令成功加入多个文件:
ffmpeg -f concat -i input.txt -codec copy output.mp4
Run Code Online (Sandbox Code Playgroud)
此命令的唯一问题是您需要从名为input.txt的文本文件中读取文件路径,其内容如下:
file 'C:\Users\fabio\Downloads\Super\Sharks\01.mp4'
file 'C:\Users\fabio\Downloads\Super\Sharks\02.mp4'
file 'C:\Users\fabio\Downloads\Super\Sharks\03.mp4'
Run Code Online (Sandbox Code Playgroud)
有没有办法实现相同的目标而不必从文件中读取文件路径?我尝试了以下但没有运气:
ffmpeg -f concat -i file "C:\a\b\01.mp4" file "C:\a\b\02.mp4" -codec copy output.mp4
ffmpeg -f concat -i "C:\a\b\01.mp4" "C:\a\b\02.mp4" -codec copy output.mp4
Run Code Online (Sandbox Code Playgroud)
我必须使用不同的命令吗?
Car*_*ing 51
正如评论中提到的,Stack Overflow 对可用的连接选项进行了很好的描述,并根据您使用的文件类型讨论了使用哪种方法:
您应该能够使用concat 协议方法来组合文件:
ffmpeg -i "concat:input1.mp4|input2.mp4|input3.mp4" -c copy output.mp4
Run Code Online (Sandbox Code Playgroud)
此外,FFmpeg 手册讨论了一种专门针对 MP4 文件的方法,以便无损地连接它们,但要求您创建临时文件(或命名管道):
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4
Run Code Online (Sandbox Code Playgroud)
您可以通过将列表输出到ffmpegstdout并从中读取列表来将文件替换为列表stdin:
(echo file 'a.mp4' & echo file 'b.mp4') | ffmpeg -protocol_whitelist file,pipe -f concat -safe 0 -i pipe: -vcodec copy -acodec copy "result.mp4"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134622 次 |
| 最近记录: |