for i in $(ls D/.mp3); do ffmpeg -i 'C/'$(ls C/.mp4 | head -n $n) -i $i -map 0:v -map 1:a -c copy -shortest $(ls C/*.mp4 | head -n $n | sed 's/C///g' | sed 's/.mp4/_.mp4/g'); n=$((n+1)); done 把这个代码分行
时间: 2023-03-13 13:23:39 浏览: 107
for i in $(ls D/.mp3); do
ffmpeg -i C/$(ls C/.mp4 | head -n $n) -i $i -map 0:v -map 1:a -c copy -shortest $(ls C/*.mp4 | head -n $n | sed s/C///g | sed s/.mp4/_.mp4/g)
n=$((n 1))
done
相关问题
gcc -o ffplay -I../libavformat -I../libavcodec -I../libavutil -I../libswresample -I../libswscale -I../libavfilter -L../libavcodec -L../libavformat -L../libavutil -L../libswresample -L../libswscale -L../libavfilter ffplay.c -lavformat -lavcodec -lswresample -lswscale -lavutil -lavfilter -lm -lz -pthread -lSDL2
这个命令是一个编译 `ffplay.c` 文件的命令,其中包含了 FFmpeg 库和 SDL 库的头文件路径和库文件路径。
具体来说,`-I` 选项用于指定头文件路径,`-L` 选项用于指定库文件路径,`-l` 选项用于指定需要链接的库文件名。下面是这个命令中的各个选项的含义:
- `-I../libavformat`: 指定了 FFmpeg 中 `libavformat` 库的头文件路径。
- `-I../libavcodec`: 指定了 FFmpeg 中 `libavcodec` 库的头文件路径。
- `-I../libavutil`: 指定了 FFmpeg 中 `libavutil` 库的头文件路径。
- `-I../libswresample`: 指定了 FFmpeg 中 `libswresample` 库的头文件路径。
- `-I../libswscale`: 指定了 FFmpeg 中 `libswscale` 库的头文件路径。
- `-I../libavfilter`: 指定了 FFmpeg 中 `libavfilter` 库的头文件路径。
- `-L../libavcodec`: 指定了 FFmpeg 中 `libavcodec` 库的库文件路径。
- `-L../libavformat`: 指定了 FFmpeg 中 `libavformat` 库的库文件路径。
- `-L../libavutil`: 指定了 FFmpeg 中 `libavutil` 库的库文件路径。
- `-L../libswresample`: 指定了 FFmpeg 中 `libswresample` 库的库文件路径。
- `-L../libswscale`: 指定了 FFmpeg 中 `libswscale` 库的库文件路径。
- `-L../libavfilter`: 指定了 FFmpeg 中 `libavfilter` 库的库文件路径。
- `-lavformat`: 指定了需要链接的 FFmpeg 中 `libavformat` 库的名称。
- `-lavcodec`: 指定了需要链接的 FFmpeg 中 `libavcodec` 库的名称。
- `-lswresample`: 指定了需要链接的 FFmpeg 中 `libswresample` 库的名称。
- `-lswscale`: 指定了需要链接的 FFmpeg 中 `libswscale` 库的名称。
- `-lavutil`: 指定了需要链接的 FFmpeg 中 `libavutil` 库的名称。
- `-lavfilter`: 指定了需要链接的 FFmpeg 中 `libavfilter` 库的名称。
- `-lm`: 指定需要链接的数学库。
- `-lz`: 指定需要链接的压缩库。
- `-pthread`: 指定需要链接的线程库。
- `-lSDL2`: 指定需要链接的 SDL2 库的名称。
这个命令的作用是将 `ffplay.c` 编译成可执行文件 `ffplay`,并链接上 FFmpeg 和 SDL 库。
./rtsp-simple-server rtsp_server.yml & ffmpeg -re -stream_loop -1 -i 1.mp4 -vcodec copy -acodec copy -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live1.sdp & ffmpeg -re -stream_loop -1 -i 2.mp4 -vcodec copy -acodec copy -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live2.sdp & ffmpeg -re -stream_loop -1 -i 3.mp4 -vcodec copy -acodec copy -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live3.sdp & ffmpeg -re -stream_loop -1 -i 4.mp4 -vcodec copy -acodec copy -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live4.sdp &
这段脚本的作用是启动一个简单的RTSP服务器,并将四个mp4文件通过RTSP协议流式传输到本地主机的8554端口上。其中,每个mp4文件都会被转码为一个单独的SDP流(例如,live1.sdp,live2.sdp等)。你可以使用一个RTSP客户端来连接这些流并播放它们。请注意,这些文件需要与脚本所在的目录处于同一目录下。
如果你遇到了问题,例如连接失败或无法播放,请确保本地主机上的8554端口未被其他程序使用,并尝试使用不同的端口或更改目标主机来解决问题。
阅读全文