j1*_*om. 1 pipe ffmpeg openssl fifo
我想使用的输出ffmpeg
来加密视频openssl
:
我尝试使用名称管道但没有成功。使用命令:
mkfifo myfifo
ffmpeg -f alsa -ac 2 -i plughw:0,0 -f video4linux2 -s vga -i /dev/video0 myfifo
Run Code Online (Sandbox Code Playgroud)
我收到错误
[NULL @ 0x563c02ce5c00] Unable to find a suitable output format for 'myfifo'
myfifo: Invalid argument
Run Code Online (Sandbox Code Playgroud)
这个想法是稍后加密 ffmpeg 的标准输出
dd if=myfifo | openssl enc -des3 -out video.mp4
Run Code Online (Sandbox Code Playgroud)
我怎样才能通过管道输出ffmpeg
到openssl
PS:我知道可以使用 ffmpeg 进行加密,但更喜欢使用带有管道的 openssl。
小智 5
ffmpeg 尝试根据文件扩展名猜测视频格式。要么“设置输出格式的选项等”,如@alex-stragies 所述,要么使用 ffmpeg 知道的 fifo 的文件扩展名。
如果openssl 要独立运行,还要在命令行上给它加密密码。
当使用管道或 fifo 作为输出时,ffmpeg 无法在输出文件中来回切换,因此所选格式必须是在写入时不需要随机访问的格式。例如,如果您尝试使用 x264 视频和 aac 音频 ( ffmpeg -c:v libx264 -c:a aac
)创建 mp4 ,则 ffmpeg 将随着[mp4 @ 0xc83d00] muxer does not support non seekable output
.
( umask 066 ; echo password >/tmp/myfilepasswd )
mkfifo /tmp/schproutz-vid
openssl enc -des3 -out video.enc \
-in /tmp/schproutz-vid \
-pass file:/tmp/myfilepasswd &
sleep 1
ffmpeg -f alsa -ac 2 -i plughw:0,0 \
-f video4linux2 \
-s vga -i /dev/video0 \
-f ogg /tmp/schproutz-vid
Run Code Online (Sandbox Code Playgroud)
一旦你让它工作,你可以轻松地删除 fifo 并在 ffmpeg 和 openssl 之间使用管道:
ffmpeg -f alsa -ac 2 -i plughw:0,0 \
-f video4linux2 \
-s vga -i /dev/video0 \
-f ogg - |
openssl enc -des3 \
-pass file:/tmp/myfilepasswd \
> outputfile.enc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8232 次 |
最近记录: |