linuxffmpeg推流命令

worktile 其他 182

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中使用ffmpeg进行推流的命令可以通过以下方式实现:

    1. 推流至RTMP服务器:
    “`bash
    ffmpeg -i 输入文件地址 -c:v copy -c:a aac -f flv rtmp://服务器地址/应用名称/流名称
    “`
    其中,输入文件地址是需要推流的视频文件的路径,服务器地址是RTMP服务器的地址,应用名称是服务器中的应用名称,流名称是流的名称。

    2. 推流至HTTP服务器:
    “`bash
    ffmpeg -i 输入文件地址 -c:v copy -c:a aac -f flv http://服务器地址/live/流名称
    “`
    其中,输入文件地址是需要推流的视频文件的路径,服务器地址是HTTP服务器的地址,流名称是流的名称。

    3. 推流至其他协议的服务器:
    “`bash
    ffmpeg -i 输入文件地址 -c:v copy -c:a aac -f 输出协议://服务器地址/流名称
    “`
    其中,输入文件地址是需要推流的视频文件的路径,输出协议可以是RTMP、HTTP、UDP等协议,服务器地址是对应服务器的地址,流名称是流的名称。

    需要注意的是,上述命令中的-c:v copy表示直接将视频流复制到输出流,-c:a aac表示使用AAC编码的音频流,-f表示指定输出格式。

    此外,还可以通过添加额外的参数来设置编码参数、分辨率、码率等。具体可以参考ffmpeg命令的文档或使用ffmpeg的帮助命令(如ffmpeg -h)来了解更多的推流命令选项。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,使用FFmpeg进行推流有几种不同的命令选项。下面是一些常用的FFmpeg推流命令:

    1. 推送视频流:

    “`bash
    ffmpeg -re -i input.mp4 -c:v copy -f flv rtmp://server/live/stream_name
    “`

    解释:
    – `-re`:以实际的帧速率读取输入文件,这对于实时流式传输很重要。
    – `-i input.mp4`:输入文件的路径和名称。
    – `-c:v copy`:复制视频流,不对视频进行重新编码。
    – `-f flv`:指定输出流的格式为FLV。
    – `rtmp://server/live/stream_name`:RTMP服务器的URL和流的名称。

    2. 推送音频流:

    “`bash
    ffmpeg -re -i input.mp3 -vn -c:a copy -f flv rtmp://server/live/stream_name
    “`

    解释:
    – `-re`:以实际的采样率读取输入文件,这对于实时流式传输很重要。
    – `-i input.mp3`:输入文件的路径和名称。
    – `-vn`:在输出中禁用视频流。
    – `-c:a copy`:复制音频流,不对音频进行重新编码。
    – `-f flv`:指定输出流的格式为FLV。
    – `rtmp://server/live/stream_name`:RTMP服务器的URL和流的名称。

    3. 推送摄像头视频流:

    “`bash
    ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy -f flv rtmp://server/live/stream_name
    “`

    解释:
    – `-f v4l2`:使用Video4Linux2设备作为输入。
    – `-input_format mjpeg`:指定输入的视频格式为MJPEG。
    – `-i /dev/video0`:指定摄像头设备的路径。
    – `-c:v copy`:复制视频流,不对视频进行重新编码。
    – `-f flv`:指定输出流的格式为FLV。
    – `rtmp://server/live/stream_name`:RTMP服务器的URL和流的名称。

    4. 推送屏幕视频流:

    “`bash
    ffmpeg -f x11grab -r 30 -s 1920×1080 -i :0.0 -c:v libx264 -preset ultrafast -f flv rtmp://server/live/stream_name
    “`

    解释:
    – `-f x11grab`:使用X11屏幕作为输入。
    – `-r 30`:设置帧率为30帧/秒。
    – `-s 1920×1080`:设置输出视频的分辨率为1920×1080。
    – `-i :0.0`:指定显示器的位置。
    – `-c:v libx264 -preset ultrafast`:使用H.264编码器,以ultrafast为预设速度。
    – `-f flv`:指定输出流的格式为FLV。
    – `rtmp://server/live/stream_name`:RTMP服务器的URL和流的名称。

    5. 推送音频和视频流:

    “`bash
    ffmpeg -re -i input.mp4 -i input.mp3 -c:v copy -c:a copy -f flv rtmp://server/live/stream_name
    “`

    解释:
    – `-re`:以实际的帧速率读取输入文件,这对于实时流式传输很重要。
    – `-i input.mp4`:视频输入文件的路径和名称。
    – `-i input.mp3`:音频输入文件的路径和名称。
    – `-c:v copy`:复制视频流,不对视频进行重新编码。
    – `-c:a copy`:复制音频流,不对音频进行重新编码。
    – `-f flv`:指定输出流的格式为FLV。
    – `rtmp://server/live/stream_name`:RTMP服务器的URL和流的名称。

    请注意,上述命令中的`rtmp://server/live/stream_name`只是一个示例URL,你需要将其替换为你自己的RTMP服务器的URL和流的名称。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Linux下使用ffmpeg进行推流的命令可以通过以下步骤实现:

    1. 安装ffmpeg:
    在Linux系统中,可以通过包管理器进行安装。例如,使用apt-get命令在Ubuntu系统中安装ffmpeg:
    “`
    sudo apt-get update
    sudo apt-get install ffmpeg
    “`
    2. 确定输入源:
    在推流之前,需要确定输入源。可以是视频文件、摄像头、屏幕录制等。以下是一些示例输入源的命令:

    – 推送视频文件:
    “`
    ffmpeg -re -i input.mp4 -c copy -f flv rtmp://server/live/stream
    “`
    这里的`input.mp4`是输入视频文件的名称,`rtmp://server/live/stream`是目标推流的URL。

    – 推送摄像头:
    可以使用v4l2-ctl命令查看摄像头设备的信息。
    “`
    v4l2-ctl –list-devices
    “`
    然后使用以下命令推送摄像头:
    “`
    ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v h264 -f flv rtmp://server/live/stream
    “`
    这里的`/dev/video0`是摄像头设备的路径。

    – 推送屏幕录制:
    “`
    ffmpeg -f x11grab -r 25 -s 1920×1080 -i :0.0 -vf “format=pix_fmts=yuv420p” -c:v libx264 -pix_fmt yuv420p -c:a aac -f flv rtmp://server/live/stream
    “`
    这里的`:0.0`代表屏幕的显示端口。

    3. 准备推流服务器:
    在上面的例子中,`rtmp://server/live/stream`是推流服务器的URL。将其替换为实际的推流服务器地址。

    4. 开始推流:
    运行推流命令开始推流。在命令行输入并执行命令即可。

    以上是Linux下使用ffmpeg进行推流的基本命令。你可以根据实际情况进行修改和调整。有关更多ffmpeg的细节和参数,可以参考ffmpeg的官方文档。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部