利用ffmpeg从视频中提取纯(音频、视频、字幕)再合成视频

1. 提取纯音频

ffmpeg -i rawVideo.mp4 -acodec copy -vn vnVideo.aac
或者
ffmpeg -i rawVideo.mp4 -c:a copy -vn vnVideo.aac

-vn: v代表视频,n代表no,无视频的意思
-acodec copy: 音频只拷贝,不编解码
-acodec的缩写-c:a
-codecd的缩写-c

2. 提取纯视频(含字幕)

ffmpeg -i rawVideo.mp4 -vcodec copy -an anVideo.mp4
或者
ffmpeg -i rawVideo.mp4 -c:v copy -an anVideo.mp4

-an: a代表音频,n代表no,无音频的意思。
-vcodec copy: 视频只拷贝,不编解码
-vcodec的缩写-c:v(codec of video) mp4默认使用的是h264(视频编码器),使用-c:v libx265(视频编码器)生成同等质量、文件更小的h265视频
-codec的缩写-c

3. 提取纯字幕

错误:报错信息:Output file #0 does not contain any stream
ffmpeg -i rawVideo.mp4 -c:s copy subtitle.srt
上述命令行只适用于 内挂字幕的视频文件,不适用于内嵌字幕视频文件
-c:s:与上述视频流类似,是字幕流
未找到解决方案

4. 纯视频与纯音频合成视频

错误:
ffmpeg -i anVideo.mp4 -i vnVideo.aac -vcodec copy -acodec copy newVideo.mp4
虽可以生成newVideo.mp4,但打开只是一张图片
原因:https://blog.csdn.net/qq_33349051/article/details/104061630
改正:
ffmpeg -i anVideo.mp4 -i vnVideo.aac -vcodec copy -acodec copy -bsf:a aac_adtstoasc newVideo.mp4

-bsf:a aac_adtstoasc: 音频数据是AAC流,在解码时需要

另外一种写法:
错误1:	
ffmpeg -i anVideo.mp4 -i vnVideo.aac -vcodec copy -acodec copy acc -strict experimental newVideo.mp4
错误2:
ffmpeg -i anVideo.mp4 -i vnVideo.aac -c:v copy -c:a copy aac -strict experimental newVideo.mp4
改正:
ffmpeg -i anVideo.mp4 -i vnVideo.aac -c:v copy -c:a aac -strict experimental newVideo.mp4

-i anVideo.mp4:指定视频文件路径。
 -i vnVideo.aac:指定音频文件路径。
-c:v copy:将视频流复制到输出文件中,不进行重新编码。
-c:a aac:使用AAC编码音频流。 不能-c:a copy 音频需要重新编码
-strict experimental:启用实验性AAC编码器。
newVideo.mp4:指定输出文件路径和名称。

相关推荐

  1. ffmpeg合并视频音频

    2024-06-07 10:40:01       43 阅读
  2. Js使用ffmpeg视频合成音频背景音乐

    2024-06-07 10:40:01       46 阅读
  3. ffmpeg将一个视频音频合并到另一个视频

    2024-06-07 10:40:01       9 阅读
  4. python提取视频音频

    2024-06-07 10:40:01       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 10:40:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 10:40:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 10:40:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 10:40:01       18 阅读

热门阅读

  1. MySQL笔记

    2024-06-07 10:40:01       9 阅读
  2. 单线服务器与双线服务器的区别?

    2024-06-07 10:40:01       9 阅读
  3. pandas处理DataFrame的方法汇总08

    2024-06-07 10:40:01       5 阅读
  4. 什么是shell脚本?

    2024-06-07 10:40:01       7 阅读
  5. MySQL和Redis的区别

    2024-06-07 10:40:01       9 阅读
  6. shell脚本对编码和行尾符敏感吗

    2024-06-07 10:40:01       9 阅读
  7. 2-链表-61-相交节点-LeetCode160

    2024-06-07 10:40:01       7 阅读
  8. GaussDB 数据库的事务管理

    2024-06-07 10:40:01       8 阅读