## ffmpeg 输入输出 https://segmentfault.com/a/1190000042391748 https://www.jianshu.com/c/5cef16ba6351 https://blog.csdn.net/phker/article/details/132027547 https://zhuanlan.zhihu.com/p/597299940 https://zhuanlan.zhihu.com/p/618769012#:~:text=1%20%E5%85%A8%E5%B1%80%E5%8F%82%E6%95%B0%EF%BC%9A%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA%EF%BC%8C%E6%96%87%E4%BB%B6%E8%A6%86%E7%9B%96%E7%AD%89%E5%85%A8%E5%B1%80%E9%80%89%E9%A1%B9.%202%20%E8%BE%93%E5%85%A5%E6%96%87%E4%BB%B6%E5%8F%82%E6%95%B0%EF%BC%9A%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E8%BE%93%E5%85%A5%E9%80%89%E9%A1%B9%203%20%E8%BE%93%E5%85%A5%E6%96%87%E4%BB%B6,4%20%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%E5%8F%82%E6%95%B0%EF%BC%9A%E8%BD%AC%E6%8D%A2%EF%BC%88%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8%EF%BC%8C%E8%B4%A8%E9%87%8F%E7%AD%89%EF%BC%89%E6%88%96%E8%BF%87%E6%BB%A4%E6%88%96%E6%B5%81%E6%98%A0%E5%B0%84%205%20%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%206%20%E5%8F%82%E6%95%B0%E5%A4%AA%E5%A4%9A%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E4%B8%BA%E4%BA%86%E4%BE%BF%E4%BA%8E%E6%9F%A5%E7%9C%8B%EF%BC%8Cffmpeg%20%E5%91%BD%E4%BB%A4%E5%8F%AF%E4%BB%A5%E5%86%99%E6%88%90%E5%A4%9A%E8%A1%8C%E3%80%82 https://zhuanlan.zhihu.com/p/117523405 Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ..D... = Data codec ..T... = Attachment codec ...I.. = Intra frame-only codec ....L. = Lossy compression .....S = Lossless compression D. = Demuxing supported .E = Muxing supported T.. = Timeline support .S. = Slice threading ..C = Command support I.... = Supported Input format for conversion .O... = Supported Output format for conversion ..H.. = Hardware accelerated format ...P. = Paletted format ....B = Bitstream format .D......... ### 输入 1. 文件输入 2. 网络流输入 3. 设备输入 4. 图片序列输入 5. ### 输出 1. 文件输出 2. 网络流输出 3. 设备输出 4. 图片序列输出 5. ### 5.1 #### 截取视频 ```Shell ffmpeg -i lk.mkv -ss 00:00:42 -to 00:04:43.32 -c copy lk_start.mkv ``` #### 提取音频 ```Shell ffmpeg -i lk_start.mkv -vn -c:a copy lk.aac ffmpeg -i lk_start.mkv -vn -c:a libmp3lame lk.mp3 ``` #### 制作 gif ```Shell ffmpeg -ss 00:03:15 -i lk_start.mkv -t 5 -r 10 -vf scale=200:-1 -sn -an jugaogao.gif ``` ### avfoundation 参数 ```Shell -list_devices 如果设置为 true,则会给出所有可用输入设备的列表,显示所有设备名称和索引。 -video_device_index 通过索引指定视频设备。覆盖输入文件名中给出的任何内容。 -audio_device_index 通过索引指定音频设备。覆盖输入文件名中给出的任何内容 -pixel_format TODO: 有哪些 pixel_format -framerate 设置抓取帧率。默认为ntsc,对应帧速率为30000/1001 -video_size 设置视频帧大小。 -capture_cursor 捕获鼠标指针。默认值为 0。 -capture_mouse_clicks 捕获屏幕鼠标点击。默认值为 0。 -capture_raw_data 捕获原始设备数据。默认值为 0。 ``` #### 打印支持的设备列表并退出 ```Shell ffmpeg -f avfoundation -list_devices true -i "" ``` #### 录制音视频 ```Shell ##### 将视频设备 0 中的视频和音频设备 0 中的音频录制到 out.avi 中 ffmpeg -f avfoundation -i "0:0" out.avi ##### 将视频设备 2 中的视频和音频设备 1 中的音频录制到 out.avi 中 ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi ##### 使用像素格式 bgr0 从系统默认视频设备录制视频,并且不将任何音频录制到 out.avi 中 ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi ``` ### lavfi 参数 ```Shell ``` #### 生成老电视测试信号 ```Shell ffmpeg -f lavfi -i testsrc -t 5 -f lavfi -i sine=r=44100 -t 5 -f flv -vcodec h264 -acodec aac abc.mp4 ffmpeg -f lavfi -i 'nullsrc,geq=random(1)*255:128:128' -t 5 -f lavfi -i sine=r=44100 -t 5 -f flv -vcodec h264 -acodec aac abc.mp4 ```