Existe outra ótima solução que eu tenho. Não corrompa os arquivos de áudio e vídeo de qualquer maneira.
Você pode usar -f mpegts
em vez de -f mp4
no ffmpeg
Na verdade, tenho um dispositivo que grava o áudio e o vídeo. quando a gravação é iniciada, o arquivo de vídeo também começa a persistir no disco rígido.
Mas se o dispositivo for desativado, infelizmente, entre a gravação. O arquivo de vídeo fica corrompido e dá um erro: Este arquivo não contém stream reproduzível
Estou usando o sistema Ubuntu
e gravo o vídeo usando ffmpeg
Qualquer um pode me ajudar .. !!!
Estou usando a webcam para gravar o vídeo e o microfone bluetooth para áudio usando o ffmpeg. A seguir, o comando que estou usando para armazenar a gravação de áudio e vídeo em outro dispositivo (disco rígido):
ffmpeg -loglevel warning -y -i /home/prakash/../../output/2013-10-07T22-39-05/right_cam.mp4 -i /home/prakash/../.. output/2013-10-07T22-39-05/left_cam.mp4 -filter_complex '[1:0] pad=108:28:5:2:black [padvidleft]; [0:0] setpts=PTS+0.8786787543577881/TB [right_cam_pts]; [padvidleft][right_cam_pts] overlay=544:0 [mergedvid] ; [1:2] channelsplit [ll][lr]; [ll][lr] amix [leftmix];
[1:3] channelsplit [rl][rr]; [rl][rr] amix [rightmix];
[leftmix][rightmix] amix [cam_all];
[1:4] channelsplit [btl][btr] ; [btl][btr] amix [btmix] ;
[btmix][cam_all] join [bt_mixcam]' -f mp4 -crf 20 -r 24 -pix_fmt yuv420p -vcodec libx264 -vprofile baseline -map [mergedvid] -map [bt_mixcam] -map 1:2 -map 1:3 -map 1:4 /home/prakash/../../output/combos/combo-2013-10-07T22-39-05_dgrt6546533w471567f880abf287a855c_1088x288.mp4
Se a gravação for iniciada e no meio, desligamos o dispositivo de gravação, o vídeo e o áudio gravados são mantidos no disco rígido, mas não podem ser reproduzidos. Quando tentamos reproduzir esta gravação a vlc dá o erro this files contains no playable stream
Existe outra ótima solução que eu tenho. Não corrompa os arquivos de áudio e vídeo de qualquer maneira.
Você pode usar -f mpegts
em vez de -f mp4
no ffmpeg
Você deve tentar um formato de contêiner de saída diferente, como MKV.
Seu -f mp4
parece supérfluo (a menos que isso faça parte de um script em que o nome de saída é ou parte de uma variável), mas se você quiser continuar usando essa opção, altere-o para -f matroska
e forneça sua saída extensão mkv em vez de mp4.
O MP4 requer que informações adicionais sejam gravadas no arquivo, mas isso só pode ocorrer depois que a codificação for concluída corretamente. Se a codificação não for concluída corretamente, a informação pode não estar presente, resultando em uma saída não reproduzível.